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

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

?? matlab2c.c

?? 模糊控制工具箱,很好用的,有相應的說明文件,希望對大家有用!
?? C
字號:
/* Copyright 1994-2005 The MathWorks, Inc. */
/* $Revision: 1.10.4.2 $ */

#ifdef MATLAB_MEX_FILE

FIS *matlab2cStr(const mxArray *matlabmat, int numofpoints)
{
	int i, j, k, param_size, data_size, status, buflen=100;
    mxArray *fispointer, *inputpointer, *mfpointer;
	DOUBLE *bias; 
	FIS *fis;
    DOUBLE *real_data_ptr;
	int *in_mf_n, *out_mf_n;
	IO *io_list;

	/*----------- Create FIS node -------------------*/
	/* allocate space for FIS structure */
	fis = (FIS *)fisCalloc(1, sizeof(FIS));
    if (fis == NULL)  return(NULL); 
    /* get fis name, type, ....*/
    fispointer=mxGetField(matlabmat, 0,"name");
    status=mxGetString(fispointer, fis->name, buflen);
    /* fis->type */
    fispointer=mxGetField(matlabmat, 0,"type");
    status=mxGetString(fispointer, fis->type, buflen);
    if (status!=0) fisError("Can not get fis type");
    /* fis->andMethod */
    fispointer=mxGetField(matlabmat, 0,"andMethod");
    status=mxGetString(fispointer, fis->andMethod, buflen);
    if (status!=0) fisError("Can not get fis andMethod");
    /* fis->orMethod */
    fispointer=mxGetField(matlabmat, 0,"orMethod");
    status=mxGetString(fispointer, fis->orMethod, buflen);
    if (status!=0) fisError("Can not get fis orMethod");
    /* fis->defuzzMethod */
    fispointer=mxGetField(matlabmat, 0,"defuzzMethod");
    status=mxGetString(fispointer, fis->defuzzMethod, buflen);
    if (status!=0) fisError("Can not get fis defuzzMethod");
    /* fis->impMethod */
    fispointer=mxGetField(matlabmat, 0,"impMethod");
    status=mxGetString(fispointer, fis->impMethod, buflen);
    if (status!=0) fisError("Can not get fis impMethod");
    /* fis->aggMethod */
    fispointer=mxGetField(matlabmat, 0,"aggMethod");
    status=mxGetString(fispointer, fis->aggMethod, buflen);
    if (status!=0) fisError("Can not get fis aggMethod");

	fispointer=mxGetField(matlabmat, 0, "bias"); 
	if (fispointer)
	{
		int M;
		M = mxGetM(fispointer);		
		fis->bias = (DOUBLE *) mxCalloc(M,sizeof(DOUBLE));
		for (i=0;i<M;i++)		
            fis->bias[i]=mxGetPr(fispointer)[i];
		
		fis->isbias = 1;	
	}
	else
		fis->isbias = 0;
		



	/* inputs */
    fispointer = mxGetField(matlabmat, 0,"input");
	fis->in_n = mxGetN(fispointer);
       
	/* create input node list, each in_mf_n's element containts the number of mf */
	in_mf_n = (int *)fisCalloc(fis->in_n, sizeof(int));
	for (i = 0; i < fis->in_n; i++){
        inputpointer = mxGetField(fispointer, i, "mf"); 
        if (inputpointer!=NULL)
            in_mf_n[i] = mxGetN(inputpointer);
        else
            in_mf_n[i] = 0;
        }
	io_list = fisBuildIoList(fis->in_n, in_mf_n);
    FREE(in_mf_n);

	/* allocate memory for input list */
	/* REVISIT: why using a **IO for fis->input as opposed to a *IO ?? */
	fis->input = (IO **)fisCalloc(fis->in_n, sizeof(IO *));
	for (i = 0; i < fis->in_n; i++)
		fis->input[i] = io_list+i;
    /*finished input memory allocation */

	for(i=0; i<fis->in_n; i++){
		inputpointer=mxGetField(fispointer, i, "name");
		status=mxGetString(inputpointer, fis->input[i]->name, buflen);

		inputpointer = mxGetField(fispointer, i, "range");
		real_data_ptr = (DOUBLE *)mxGetPr(inputpointer);
		fis->input[i]->bound[0] = real_data_ptr[0];
		fis->input[i]->bound[1] = real_data_ptr[1];

		inputpointer=mxGetField(fispointer, i, "mf");
		if (inputpointer!=NULL)
			fis->input[i]->mf_n = mxGetN(inputpointer);
		else
			fis->input[i]->mf_n = 0;

		for(j=0; j<fis->input[i]->mf_n; j++){
            mfpointer = mxGetField(inputpointer, j, "name");
            status = mxGetString(mfpointer, fis->input[i]->mf[j]->label, buflen);
            mfpointer = mxGetField(inputpointer, j, "type");
            status = mxGetString(mfpointer, fis->input[i]->mf[j]->type, buflen);
            mfpointer = mxGetField(inputpointer, j, "params");
            param_size = mxGetN(mfpointer);
			fis->input[i]->mf[j]->nparams = param_size;	
			fis->input[i]->mf[j]->params = (DOUBLE *)fisCalloc(param_size,sizeof(DOUBLE));
            real_data_ptr = (DOUBLE *)mxGetPr(mfpointer);
            for(k=0; k<param_size; k++) 
				fis->input[i]->mf[j]->params[k] = (*real_data_ptr++);
		}
	}

	/* outputs */
    fispointer=mxGetField(matlabmat, 0,"output");
	fis->out_n = mxGetN(fispointer);

	/* create output node list, each in_mf_n's element containts the number of mf */
	out_mf_n = (int *)fisCalloc(fis->out_n, sizeof(int));
	for (i = 0; i < fis->out_n; i++){
        inputpointer=mxGetField(fispointer, i, "mf"); 
        if (inputpointer!=NULL)
			out_mf_n[i] = mxGetN(inputpointer);
		else
			out_mf_n[i] = 0;
        }
	io_list = fisBuildIoList(fis->out_n, out_mf_n);
	FREE(out_mf_n); 

	/* allocate memory for input list */
	fis->output = (IO **)fisCalloc(fis->out_n, sizeof(IO *));
	for (i = 0; i < fis->out_n; i++)
		fis->output[i] = io_list+i;
    /*finished output memory allocation */
	
	for(i=0; i<fis->out_n; i++){
		inputpointer=mxGetField(fispointer, i, "name");
		status=mxGetString(inputpointer, fis->output[i]->name, buflen);

		inputpointer=mxGetField(fispointer, i, "range");
		real_data_ptr=(DOUBLE *)mxGetPr(inputpointer);
		fis->output[i]->bound[0] = real_data_ptr[0];
		fis->output[i]->bound[1] = real_data_ptr[1];

		inputpointer=mxGetField(fispointer, i, "mf");
		if (inputpointer!=NULL)
           fis->output[i]->mf_n=mxGetN(inputpointer);
		else
           fis->output[i]->mf_n=0;

        for(j=0; j<fis->output[i]->mf_n; j++){
			mfpointer=mxGetField(inputpointer, j, "name");
            status=mxGetString(mfpointer, fis->output[i]->mf[j]->label, buflen);
            mfpointer=mxGetField(inputpointer, j, "type");
            status=mxGetString(mfpointer, fis->output[i]->mf[j]->type, buflen);
            mfpointer=mxGetField(inputpointer, j, "params");
			real_data_ptr = (DOUBLE *)mxGetPr(mfpointer);

			if (strcmp(fis->type, "sugeno") == 0) {
				/* For Sugeno: in the MATLAB structure, length(mf.params) is
				     * 1      for mf.type = 'constant'
					 * in_n+1 for mf.type = 'linear'
				   In the C structure, this is converted to a vector of length in_n+1 with the 
				   constant part of the MF function as last entry,
				*/
				param_size = fis->in_n+1;
				data_size = mxGetM(mfpointer)*mxGetN(mfpointer);
				fis->output[i]->mf[j]->nparams = param_size;
				fis->output[i]->mf[j]->params = (DOUBLE *)fisCalloc(param_size,sizeof(DOUBLE));
				if (data_size > 0) {
					/* Protect about [] data for backward compatibility */
					if (strcmp(fis->output[i]->mf[j]->type, "constant") == 0) {
						/* Constant output MF for Sugeno system */
						if (data_size != 1)
							fisError("Invalid FIS. PARAMS field of constant output MF must contain a scalar.");
						for(k=0; k<fis->in_n; k++)
							fis->output[i]->mf[j]->params[k] = 0.0;
						fis->output[i]->mf[j]->params[fis->in_n] = real_data_ptr[0];
					}
					else {
						/* Linear output MF for Sugeno system */
						if (data_size != param_size)
							fisError("Invalid FIS. PARAMS field of linear output MF has incorrect length.");
						for(k=0; k<param_size; k++)
							fis->output[i]->mf[j]->params[k] = *(real_data_ptr++);
					}
				}
			}
			else if (strcmp(fis->type, "mamdani") == 0) {
				/* Mamdani system */
				param_size = mxGetM(mfpointer)*mxGetN(mfpointer);
				fis->output[i]->mf[j]->nparams = param_size;	
				fis->output[i]->mf[j]->params = (DOUBLE *)fisCalloc(param_size,sizeof(DOUBLE));
				for(k=0; k<param_size; k++)
					fis->output[i]->mf[j]->params[k] = *(real_data_ptr++);
				/* Allocate MF value array */
				fis->output[i]->mf[j]->value_array =(DOUBLE *)fisCalloc(numofpoints, sizeof(DOUBLE)); 
			}
		}
	}

           
	/* rules */
    fispointer=mxGetField(matlabmat, 0,"rule");
    if (fispointer==NULL)
        fis->rule_n=0;
    else
		fis->rule_n = mxGetN(fispointer);

	fis->rule_list = (int **)fisCreateMatrix(fis->rule_n, fis->in_n + fis->out_n, sizeof(int));
	fis->rule_weight = (DOUBLE *)fisCalloc(fis->rule_n, sizeof(DOUBLE));
	fis->and_or = (int *)fisCalloc(fis->rule_n, sizeof(int));
	
	for (i = 0; i < fis->rule_n; i++) {
        inputpointer=mxGetField(fispointer, i, "antecedent");
        real_data_ptr = (DOUBLE *)mxGetPr(inputpointer);
	    for (j = 0; j < fis->in_n ; j++)
			fis->rule_list[i][j] = (int)(*real_data_ptr++);

		inputpointer=mxGetField(fispointer, i, "consequent");
		real_data_ptr = (DOUBLE *)mxGetPr(inputpointer);
	    for (j = 0; j < fis->out_n ; j++)
			fis->rule_list[i][j+fis->in_n] = (int)(*real_data_ptr++);
           
		inputpointer=mxGetField(fispointer, i, "weight");
		real_data_ptr = (DOUBLE *)mxGetPr(inputpointer);
	    fis->rule_weight[i] = *real_data_ptr;

		inputpointer=mxGetField(fispointer, i, "connection");
		real_data_ptr = (DOUBLE *)mxGetPr(inputpointer);
	    fis->and_or[i] = (int)(*real_data_ptr); 
	}
		
	fisAssignMfPointer(fis);
	fisAssignFunctionPointer(fis); 
	fis->firing_strength = (DOUBLE *)fisCalloc(fis->rule_n, sizeof(DOUBLE));
	fis->rule_output = (DOUBLE *)fisCalloc(fis->rule_n, sizeof(DOUBLE));

	if (strcmp(fis->type, "mamdani") == 0) {
		fis->BigOutMfMatrix = (DOUBLE *)
			fisCalloc(fis->rule_n*numofpoints, sizeof(DOUBLE));
		fis->BigWeightMatrix = (DOUBLE *)
			fisCalloc(fis->rule_n*numofpoints, sizeof(DOUBLE));
	}

	fis->mfs_of_rule = (DOUBLE *)fisCalloc(fis->in_n, sizeof(DOUBLE));
	if (strcmp(fis->type, "mamdani") == 0) {
		for (i = 0; i < fis->out_n; i++)
         	fisComputeOutputMfValueArray(fis, numofpoints);
	} 
	fisCheckDataStructure(fis);

	/*----------finished setting fis structure-------------------*/
	fis->next = NULL;
	return(fis);
}

#else
# define matlab2cStr(matlabmat, numofpoints)  NULL
#endif



/* transform matlab matrix to C matrix */
static DOUBLE **matlab2c(const mxArray *matlabmat)
{
	int m = mxGetM(matlabmat);
	int n = mxGetN(matlabmat);
	const DOUBLE *mat = mxGetPr(matlabmat);
	DOUBLE **out = (DOUBLE **)fisCreateMatrix(m, n, sizeof(DOUBLE));
	int i, j;

	for (i = 0; i < m; i++)
		for(j = 0; j < n; j++)
			out[i][j] = mat[j*m + i];
	return(out);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产bt| www国产亚洲精品久久麻豆| 欧美videos中文字幕| 亚洲国产精品一区二区久久恐怖片| 国产精品理伦片| 国产黄色91视频| 日韩欧美中文字幕一区| 亚洲国产cao| 欧美色涩在线第一页| 国产午夜亚洲精品理论片色戒| 香蕉av福利精品导航 | 久久久综合网站| 肉色丝袜一区二区| 色婷婷亚洲婷婷| 亚洲一本大道在线| 精品国产免费人成电影在线观看四季| 日韩激情中文字幕| 26uuuu精品一区二区| 成人avav影音| 亚洲综合无码一区二区| 欧美日韩国产片| 国产精品99久久久久久似苏梦涵| 国产精品国产三级国产三级人妇| 欧美日本一区二区三区四区 | 国产精品一卡二卡在线观看| 国产精品青草综合久久久久99| caoporn国产一区二区| 亚洲国产视频一区二区| 3d成人h动漫网站入口| 国产69精品久久777的优势| 亚洲综合一区在线| 中文字幕成人在线观看| 日韩午夜在线影院| 91九色02白丝porn| 国产高清无密码一区二区三区| 国产欧美一区二区精品久导航| 欧美一区二视频| 成人国产精品视频| 国产成人免费在线观看| 日本va欧美va欧美va精品| 亚洲免费观看在线视频| 久久久久国产精品厨房| 777a∨成人精品桃花网| 色婷婷av一区二区三区gif| 成人a级免费电影| 久久99精品久久久久久| 青娱乐精品视频| 一区二区三区中文在线观看| 国产精品乱人伦中文| 日本一区二区视频在线| 久久久久久久综合日本| 久久免费国产精品| 欧美mv日韩mv亚洲| 欧美大度的电影原声| 欧美电影免费观看高清完整版在线观看 | 在线亚洲高清视频| 欧美午夜精品免费| 日本丶国产丶欧美色综合| 色又黄又爽网站www久久| 色综合中文字幕国产| 国产不卡在线播放| 成人黄色网址在线观看| 精品国产免费久久| 国产精品人成在线观看免费 | 在线免费精品视频| 欧美网站大全在线观看| 欧美色欧美亚洲另类二区| 欧美日韩电影在线| 欧美成人精品1314www| 亚洲精品在线免费播放| 国产精品久久久久一区二区三区| 亚洲免费在线播放| 日韩电影在线一区| 国产精品综合久久| 欧美日韩国产在线观看| 国产偷国产偷亚洲高清人白洁| 国产精品福利一区二区三区| 午夜激情综合网| 亚洲国产中文字幕| 国产一区二区女| 欧美色手机在线观看| 国产亚洲一区二区三区四区| 亚洲影院理伦片| 国产成a人亚洲精| 中文字幕在线免费不卡| 美女视频免费一区| 欧美午夜精品久久久久久超碰 | 极品销魂美女一区二区三区| 色婷婷av一区二区三区软件 | 91免费国产视频网站| 日韩天堂在线观看| 一区二区三区**美女毛片| 精彩视频一区二区三区| 337p亚洲精品色噜噜狠狠| 亚洲欧洲精品一区二区三区不卡| 日本系列欧美系列| 欧美日韩精品一区二区三区| 日韩电影免费一区| 精品日韩一区二区三区 | 中文字幕欧美三区| 91麻豆精品在线观看| 亚洲日本va在线观看| 欧美性猛片aaaaaaa做受| 一区二区高清在线| 欧美成人女星排名| 国产一区二区三区电影在线观看| 久久一区二区视频| 91免费国产在线| 日韩电影在线一区二区| 国产精品久久久久久久久搜平片 | 欧美日韩午夜在线| 日韩福利视频网| 国产精品美女久久久久av爽李琼 | 色婷婷国产精品| 久久精品国产77777蜜臀| 日本一区二区高清| 欧美午夜电影在线播放| 国产一区二区日韩精品| 亚洲精品视频免费看| 欧美r级在线观看| 欧美日韩综合在线免费观看| 欧美日韩一区视频| 懂色av中文字幕一区二区三区 | 蜜臀av一区二区在线观看| 亚洲日本在线看| 国产亚洲欧美日韩在线一区| 欧美三级在线视频| 99久久er热在这里只有精品66| 日本特黄久久久高潮| 亚洲成人动漫精品| 一区二区三区四区在线免费观看| 国产欧美日韩麻豆91| 欧美电影免费观看高清完整版在线 | 国产精品一级在线| 日本不卡一区二区| 午夜欧美电影在线观看| 一区二区三区四区不卡在线| 亚洲国产精品精华液2区45| 欧美tickle裸体挠脚心vk| 91精品国产一区二区三区蜜臀| 91久久久免费一区二区| www.成人在线| 欧美性大战久久| 欧美精品xxxxbbbb| 91精品国产欧美一区二区成人| 欧美伊人久久久久久午夜久久久久| 高清在线成人网| av高清久久久| 在线观看一区二区精品视频| 欧美伦理影视网| 欧美一级理论性理论a| 日韩免费视频线观看| 国产欧美一二三区| 最新热久久免费视频| 亚洲制服丝袜在线| 肉色丝袜一区二区| 国产精品123区| 在线免费不卡视频| 日韩精品一区二区三区四区视频 | 九一九一国产精品| 99久久精品99国产精品| 欧美疯狂做受xxxx富婆| 26uuu国产在线精品一区二区| 欧美激情一区二区在线| 视频在线在亚洲| 成人激情文学综合网| 欧美精品亚洲二区| 中文字幕av一区二区三区高| 亚洲成人手机在线| 成人性生交大片免费看中文 | 亚洲一区二区视频| 国产一区二区按摩在线观看| 欧美亚洲禁片免费| 欧美国产乱子伦| 天天综合色天天综合色h| 高清久久久久久| 精品免费视频一区二区| 亚洲一区二区三区中文字幕 | 欧美群妇大交群中文字幕| 国产精品视频免费| 国产毛片一区二区| 日韩精品一区二区三区在线观看| 一区二区三区蜜桃网| 国产999精品久久| 国产婷婷色一区二区三区在线| 男女男精品视频| 在线观看区一区二| 一区二区三区不卡视频| 欧美福利一区二区| 亚洲一区自拍偷拍| 欧美视频自拍偷拍| 亚洲一卡二卡三卡四卡五卡| 91丨porny丨在线| 一区二区三区欧美久久| 一本色道久久综合狠狠躁的推荐 | 亚洲成av人影院在线观看网| 欧美性大战久久久久久久| 亚洲线精品一区二区三区八戒| 91福利社在线观看| 天堂影院一区二区|