亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? svm_model_matlab.c

?? A simple MATLAB interface LIBSVM authors at National Taiwan University.
?? C
字號:
#include <stdlib.h>#include <string.h>#include "svm.h"#include "mex.h"#if MX_API_VER < 0x07030000typedef int mwIndex;#endif #define NUM_OF_RETURN_FIELD 10#define Malloc(type,n) (type *)malloc((n)*sizeof(type))static const char *field_names[] = {	"Parameters",	"nr_class",	"totalSV",	"rho",	"Label",	"ProbA",	"ProbB",	"nSV",	"sv_coef",	"SVs"};const char *model_to_matlab_structure(mxArray *plhs[], int num_of_feature, struct svm_model *model){	int i, j, n;	double *ptr;	mxArray *return_model, **rhs;	int out_id = 0;	rhs = (mxArray **)mxMalloc(sizeof(mxArray *)*NUM_OF_RETURN_FIELD);	// Parameters	rhs[out_id] = mxCreateDoubleMatrix(5, 1, mxREAL);	ptr = mxGetPr(rhs[out_id]);	ptr[0] = model->param.svm_type;	ptr[1] = model->param.kernel_type;	ptr[2] = model->param.degree;	ptr[3] = model->param.gamma;	ptr[4] = model->param.coef0;	out_id++;	// nr_class	rhs[out_id] = mxCreateDoubleMatrix(1, 1, mxREAL);	ptr = mxGetPr(rhs[out_id]);	ptr[0] = model->nr_class;	out_id++;	// total SV	rhs[out_id] = mxCreateDoubleMatrix(1, 1, mxREAL);	ptr = mxGetPr(rhs[out_id]);	ptr[0] = model->l;	out_id++;	// rho	n = model->nr_class*(model->nr_class-1)/2;	rhs[out_id] = mxCreateDoubleMatrix(n, 1, mxREAL);	ptr = mxGetPr(rhs[out_id]);	for(i = 0; i < n; i++)		ptr[i] = model->rho[i];	out_id++;	// Label	if(model->label)	{		rhs[out_id] = mxCreateDoubleMatrix(model->nr_class, 1, mxREAL);		ptr = mxGetPr(rhs[out_id]);		for(i = 0; i < model->nr_class; i++)			ptr[i] = model->label[i];	}	else		rhs[out_id] = mxCreateDoubleMatrix(0, 0, mxREAL);	out_id++;	// probA	if(model->probA != NULL)	{		rhs[out_id] = mxCreateDoubleMatrix(n, 1, mxREAL);		ptr = mxGetPr(rhs[out_id]);		for(i = 0; i < n; i++)			ptr[i] = model->probA[i];	}	else		rhs[out_id] = mxCreateDoubleMatrix(0, 0, mxREAL);	out_id ++;	// probB	if(model->probB != NULL)	{		rhs[out_id] = mxCreateDoubleMatrix(n, 1, mxREAL);		ptr = mxGetPr(rhs[out_id]);		for(i = 0; i < n; i++)			ptr[i] = model->probB[i];	}	else		rhs[out_id] = mxCreateDoubleMatrix(0, 0, mxREAL);	out_id++;	// nSV	if(model->nSV)	{		rhs[out_id] = mxCreateDoubleMatrix(model->nr_class, 1, mxREAL);		ptr = mxGetPr(rhs[out_id]);		for(i = 0; i < model->nr_class; i++)			ptr[i] = model->nSV[i];	}	else		rhs[out_id] = mxCreateDoubleMatrix(0, 0, mxREAL);	out_id++;	// sv_coef	rhs[out_id] = mxCreateDoubleMatrix(model->l, model->nr_class-1, mxREAL);	ptr = mxGetPr(rhs[out_id]);	for(i = 0; i < model->nr_class-1; i++)		for(j = 0; j < model->l; j++)			ptr[(i*(model->l))+j] = model->sv_coef[i][j];	out_id++;	// SVs	{		int ir_index, nonzero_element;		mwIndex *ir, *jc;		mxArray *pprhs[1], *pplhs[1];			if(model->param.kernel_type == PRECOMPUTED)		{			nonzero_element = model->l;			num_of_feature = 1;		}		else		{			nonzero_element = 0;			for(i = 0; i < model->l; i++) {				j = 0;				while(model->SV[i][j].index != -1) 				{					nonzero_element++;					j++;				}			}		}		// SV in column, easier accessing		rhs[out_id] = mxCreateSparse(num_of_feature, model->l, nonzero_element, mxREAL);		ir = mxGetIr(rhs[out_id]);		jc = mxGetJc(rhs[out_id]);		ptr = mxGetPr(rhs[out_id]);		ir_index = jc[0] = 0;		for(i = 0;i < model->l; i++)		{			if(model->param.kernel_type == PRECOMPUTED)			{				// make a (1 x model->l) matrix				ir[ir_index] = 0; 				ptr[ir_index] = model->SV[i][0].value;				ir_index++;				jc[i+1] = jc[i] + 1;			}			else			{				int x_index = 0;				while (model->SV[i][x_index].index != -1)				{					ir[ir_index] = model->SV[i][x_index].index - 1; 					ptr[ir_index] = model->SV[i][x_index].value;					ir_index++, x_index++;				}				jc[i+1] = jc[i] + x_index;			}		}		// transpose back to SV in row		pprhs[0] = rhs[out_id];		if(mexCallMATLAB(1, pplhs, 1, pprhs, "transpose"))			return "cannot transpose SV matrix";		rhs[out_id] = pplhs[0];		out_id++;	}	/* Create a struct matrix contains NUM_OF_RETURN_FIELD fields */	return_model = mxCreateStructMatrix(1, 1, NUM_OF_RETURN_FIELD, field_names);	/* Fill struct matrix with input arguments */	for(i = 0; i < NUM_OF_RETURN_FIELD; i++)		mxSetField(return_model,0,field_names[i],mxDuplicateArray(rhs[i]));	/* return */	plhs[0] = return_model;	mxFree(rhs);	return NULL;}struct svm_model *matlab_matrix_to_model(const mxArray *matlab_struct, const char **msg){	int i, j, n, num_of_fields;	double *ptr;	int id = 0;	struct svm_node *x_space;	struct svm_model *model;	mxArray **rhs;	num_of_fields = mxGetNumberOfFields(matlab_struct);	if(num_of_fields != NUM_OF_RETURN_FIELD) 	{		*msg = "number of return field is not correct";		return NULL;	}	rhs = (mxArray **) mxMalloc(sizeof(mxArray *)*num_of_fields);	for(i=0;i<num_of_fields;i++)		rhs[i] = mxGetFieldByNumber(matlab_struct, 0, i);	model = Malloc(struct svm_model, 1);	model->rho = NULL;	model->probA = NULL;	model->probB = NULL;	model->label = NULL;	model->nSV = NULL;	model->free_sv = 1; // XXX	ptr = mxGetPr(rhs[id]);	model->param.svm_type	  = (int)ptr[0];	model->param.kernel_type  = (int)ptr[1];	model->param.degree	  = (int)ptr[2];	model->param.gamma	  = ptr[3];	model->param.coef0	  = ptr[4];	id++;	ptr = mxGetPr(rhs[id]);	model->nr_class = (int)ptr[0];	id++;	ptr = mxGetPr(rhs[id]);	model->l = (int)ptr[0];	id++;	// rho	n = model->nr_class * (model->nr_class-1)/2;	model->rho = (double*) malloc(n*sizeof(double));	ptr = mxGetPr(rhs[id]);	for(i=0;i<n;i++)		model->rho[i] = ptr[i];	id++;	// label	if(mxIsEmpty(rhs[id]) == 0)	{		model->label = (int*) malloc(model->nr_class*sizeof(int));		ptr = mxGetPr(rhs[id]);		for(i=0;i<model->nr_class;i++)			model->label[i] = (int)ptr[i];	}	id++;	// probA	if(mxIsEmpty(rhs[id]) == 0)	{		model->probA = (double*) malloc(n*sizeof(double));		ptr = mxGetPr(rhs[id]);		for(i=0;i<n;i++)			model->probA[i] = ptr[i];	}	id++;	// probB	if(mxIsEmpty(rhs[id]) == 0)	{		model->probB = (double*) malloc(n*sizeof(double));		ptr = mxGetPr(rhs[id]);		for(i=0;i<n;i++)			model->probB[i] = ptr[i];	}	id++;	// nSV	if(mxIsEmpty(rhs[id]) == 0)	{		model->nSV = (int*) malloc(model->nr_class*sizeof(int));		ptr = mxGetPr(rhs[id]);		for(i=0;i<model->nr_class;i++)			model->nSV[i] = (int)ptr[i];	}	id++;	// sv_coef	ptr = mxGetPr(rhs[id]);	model->sv_coef = (double**) malloc((model->nr_class-1)*sizeof(double));	for( i=0 ; i< model->nr_class -1 ; i++ )		model->sv_coef[i] = (double*) malloc((model->l)*sizeof(double));	for(i = 0; i < model->nr_class - 1; i++)		for(j = 0; j < model->l; j++)			model->sv_coef[i][j] = ptr[i*(model->l)+j];	id++;	// SV	{		int sr, sc, elements;		int num_samples;		mwIndex *ir, *jc;		mxArray *pprhs[1], *pplhs[1];		// transpose SV		pprhs[0] = rhs[id];		if(mexCallMATLAB(1, pplhs, 1, pprhs, "transpose")) 		{			svm_destroy_model(model);			*msg = "cannot transpose SV matrix";			return NULL;		}		rhs[id] = pplhs[0];		sr = mxGetN(rhs[id]);		sc = mxGetM(rhs[id]);		ptr = mxGetPr(rhs[id]);		ir = mxGetIr(rhs[id]);		jc = mxGetJc(rhs[id]);		num_samples = mxGetNzmax(rhs[id]);		elements = num_samples + sr;		model->SV = (struct svm_node **) malloc(sr * sizeof(struct svm_node *));		x_space = (struct svm_node *)malloc(elements * sizeof(struct svm_node));		// SV is in column		for(i=0;i<sr;i++)		{			int low = jc[i], high = jc[i+1];			int x_index = 0;			model->SV[i] = &x_space[low+i];			for(j=low;j<high;j++)			{				model->SV[i][x_index].index = ir[j] + 1; 				model->SV[i][x_index].value = ptr[j];				x_index++;			}			model->SV[i][x_index].index = -1;		}		id++;	}	mxFree(rhs);	return model;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av在线播放成人| 日韩欧美一区二区视频| 久久99国产精品免费| 中文字幕在线不卡| 在线观看91av| 成人一区二区在线观看| 欧美日韩国产小视频| 亚洲人亚洲人成电影网站色| 欧美日韩一区二区三区四区五区| 日韩avvvv在线播放| 中文字幕第一区| 这里只有精品免费| 国产精品一区三区| 亚洲精品免费一二三区| 26uuu亚洲婷婷狠狠天堂| 狠狠v欧美v日韩v亚洲ⅴ| 一区二区三区在线免费观看| 亚洲国产精品t66y| 精品国产青草久久久久福利| 正在播放一区二区| 在线免费av一区| 成人激情动漫在线观看| 国产精品99精品久久免费| 一区二区日韩电影| 色乱码一区二区三区88| 丰满白嫩尤物一区二区| 国产在线国偷精品产拍免费yy| 日本欧美肥老太交大片| 日韩avvvv在线播放| 亚洲第一搞黄网站| 午夜影视日本亚洲欧洲精品| 亚洲一级在线观看| 亚洲国产日韩一级| 亚洲一二三专区| 亚洲高清免费观看| 午夜精品福利视频网站 | 久久这里都是精品| 91精品国产色综合久久不卡电影 | va亚洲va日韩不卡在线观看| 国产成a人亚洲精| 国产一区二区美女| 国产精品99久久久久久宅男| 国产一区 二区| 国产精品911| 播五月开心婷婷综合| 9久草视频在线视频精品| 91一区二区在线观看| 色成人在线视频| 欧美日韩国产天堂| 777xxx欧美| 久久久精品免费免费| 欧美国产一区二区在线观看| 国产精品人成在线观看免费| 中文字幕在线不卡| 亚洲一区中文在线| 五月综合激情日本mⅴ| 蜜桃av一区二区| 国产69精品久久99不卡| 91在线视频免费观看| 欧美亚洲自拍偷拍| 日韩三级免费观看| 国产亚洲一区二区三区在线观看| 国产精品不卡在线| 午夜电影一区二区| 久久99在线观看| av动漫一区二区| 欧美久久久久久久久| 久久久.com| 亚洲黄色性网站| 精品一区免费av| 99国产精品久久久久| 欧美日韩成人高清| 欧美国产1区2区| 图片区小说区国产精品视频| 国产一区中文字幕| 欧美在线你懂得| 久久久综合网站| 亚洲精选在线视频| 麻豆传媒一区二区三区| 99久久综合99久久综合网站| 欧美久久久久久久久中文字幕| 国产片一区二区三区| 亚洲成年人影院| 国产激情偷乱视频一区二区三区| 在线视频国产一区| 久久久久9999亚洲精品| 亚洲成人免费视| a在线播放不卡| 日韩欧美亚洲国产精品字幕久久久| 国产精品成人一区二区艾草 | 欧美日韩性生活| 久久综合九色综合久久久精品综合 | 天天影视网天天综合色在线播放| 国产一区二区伦理| 777亚洲妇女| 综合久久一区二区三区| 国产一区二区三区四| 欧美另类z0zxhd电影| 亚洲图片欧美激情| 国产一区二区三区四区五区美女| 欧美三级蜜桃2在线观看| 国产精品免费aⅴ片在线观看| 日韩精品1区2区3区| 日本精品视频一区二区三区| 久久久久国产精品人| 蜜桃精品在线观看| 欧美日韩国产经典色站一区二区三区| 国产精品网站在线观看| 久久成人久久鬼色| 777色狠狠一区二区三区| 亚洲品质自拍视频| 菠萝蜜视频在线观看一区| 久久美女艺术照精彩视频福利播放 | 99这里只有久久精品视频| 久久综合色播五月| 免费成人美女在线观看.| 欧美人与禽zozo性伦| 亚洲精品国产第一综合99久久 | 日韩成人一级大片| 欧美天堂亚洲电影院在线播放| 综合在线观看色| 97久久人人超碰| 成人欧美一区二区三区| 国产成人av资源| 国产午夜精品一区二区| 国产在线国偷精品产拍免费yy| 精品久久久久久无| 韩国午夜理伦三级不卡影院| 欧美videos大乳护士334| 美女视频一区在线观看| 精品日产卡一卡二卡麻豆| 麻豆91在线观看| 日韩免费福利电影在线观看| 美女www一区二区| 欧美mv日韩mv国产网站| 国内精品国产成人| 中文字幕国产一区| 成人高清伦理免费影院在线观看| 国产精品三级电影| 99久久综合国产精品| 一区二区激情视频| 欧美色综合网站| 蜜桃av噜噜一区二区三区小说| 精品1区2区在线观看| 国产盗摄视频一区二区三区| 国产视频亚洲色图| 成人动漫av在线| 亚洲精品免费视频| 91精品国模一区二区三区| 久久国产精品72免费观看| 久久精品人人做人人综合| 成人污污视频在线观看| 亚洲欧美日本韩国| 欧美日韩一本到| 国产一区二区三区久久久 | 国产精品电影一区二区三区| 色哦色哦哦色天天综合| 午夜欧美大尺度福利影院在线看| 欧美一区国产二区| 高清在线观看日韩| 亚洲一区日韩精品中文字幕| 欧美一区二区久久| 国产成人精品午夜视频免费| 亚洲精品视频免费看| 制服丝袜激情欧洲亚洲| 国产激情一区二区三区| 一区二区三区不卡视频在线观看 | 日韩女优电影在线观看| 粉嫩蜜臀av国产精品网站| 一区二区在线观看免费 | 亚洲高清在线视频| 久久伊99综合婷婷久久伊| 91麻豆精品一区二区三区| 天堂影院一区二区| 国产欧美综合在线观看第十页| 欧美在线高清视频| 国产综合一区二区| 亚洲国产wwwccc36天堂| 国产日产欧美一区二区视频| 欧美三区在线观看| 国产精品影视天天线| 亚洲综合999| 国产午夜一区二区三区| 欧美片在线播放| 99久久亚洲一区二区三区青草| 日本亚洲免费观看| 一区二区三区在线免费| 国产日产欧美一区二区三区| 欧美日韩国产一二三| 99久久综合国产精品| 狠狠网亚洲精品| 日韩中文字幕不卡| 亚洲婷婷综合久久一本伊一区| 精品国产自在久精品国产| 在线观看欧美精品| 成人激情av网| 国产美女av一区二区三区| 日韩精品成人一区二区在线| 亚洲欧美欧美一区二区三区| 欧美韩国日本不卡|