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

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

?? sffis.tlc

?? 模糊控制工具箱,很好用的,有相應的說明文件,希望對大家有用!
?? TLC
字號:
%% $RCSfile: sffis.tlc,v $
%% $Revision: 1.6.4.3 $
%% $Date: 2005/06/27 22:38:50 $
%%
%% Murali Yeddanapudi, 14-Nov-1997
%% Copyright 1994-2004 The MathWorks, Inc.
%%
%% Abstract:
%%      Target file for the Level 2 S-function sffis.c

%implements "sffis" "C"



%% Function: BlockInstanceSetup ===============================================
%% Abstract:
%%
%function BlockInstanceSetup(block, system) void
  %<LibDefinePWork(block, "FISPointer", 1)>
  %if !EXISTS("FLT_sffis")
    %assign ::FLT_sffis = 1
    %openfile buffer
    #include "rt_fuzzy.h"

    extern void fisAssignMfPointer(FIS *fis);
    extern void fisCheckDataStructure(FIS *fis);
    extern void fisAssignFunctionPointer(FIS *fis);
    extern IO   *fisBuildIoList(int_T node_n, int_T *mf_n);
    extern void fisComputeOutputMfValueArray(FIS *fis, int numofpoints);
    extern char **fisCreateMatrix(int row_n, int col_n, int element_size);
    extern void fisFreeFisNode(FIS *fis);
    extern void fisEvaluate(FIS *fis, int numofpoints);
    %closefile buffer
    %<LibCacheIncludes(buffer)>
  %endif
  %%
%endfunction %% BlockInstanceSetup



%% Function: Start ============================================================
%% Abstract:
%%
%function Start(block, system) Output
  /* %<Type> Block: %<Name> (%<ParamSettings.FunctionName>) */
  {
    FIS  *fis;

    if ( (fis = (FIS *)calloc(1, sizeof(FIS))) == NULL ) {
      %<RTMSetErrStat("\"Memory Allocation Error\"")>;
      return;
    }
    %assign fis = block.SFcnFIS
    %with fis
    %%
    %assign numOfPoints = 101
    %%
    %if EXISTS("name")
      (void)strcpy(fis->name, "%<name>");
    %endif
    %%
    %assign fisType = ""
    %if EXISTS("type")
      (void)strcpy(fis->type, "%<type>");
      %assign fisType = type
    %endif
    %%
    %if EXISTS("andMethod")
      (void)strcpy(fis->andMethod, "%<andMethod>");
    %endif
    %%
    %if EXISTS("orMethod")
      (void)strcpy(fis->orMethod, "%<orMethod>");
    %endif
    %if EXISTS("defuzzMethod")
      (void)strcpy(fis->defuzzMethod, "%<defuzzMethod>");
    %endif
    %if EXISTS("impMethod")
      (void)strcpy(fis->impMethod, "%<impMethod>");
    %endif
    %if EXISTS("aggMethod")
      (void)strcpy(fis->aggMethod, "%<aggMethod>");
    %endif

    %%
    %% Parse and setup the input record
    %%
    %assign ninputs = 0
    %if EXISTS("input")
    {
      IO    *io_list;
      int_T *in_mf_n;
      int_T i;

      %assign ninputs = SIZE(input,1)
      if ( (in_mf_n = (int_T *)calloc(%<ninputs>, sizeof(int_T))) == NULL ) {
	%<RTMSetErrStat("\"Memory Allocation Error\"")>;
	return;
      }
      %foreach idx = ninputs
        %assign nmf = 0
        %with input[idx]
	%if EXISTS("mf")
          %assign nmf = SIZE(mf,1)
        %endif
        %endwith
        in_mf_n[%<idx>] = %<nmf>;
      %endforeach
      io_list = fisBuildIoList(%<ninputs>, in_mf_n);
      free(in_mf_n);

      fis->in_n = %<ninputs>;
      if ( (fis->input = (IO **)calloc(%<ninputs>, sizeof(IO *))) == NULL ) {
	%<RTMSetErrStat("\"Memory Allocation Error\"")>;
	return;
      }
      for (i=0; i< %<ninputs>; i++) {
        fis->input[i] = io_list+i;
      }

      %foreach idx = ninputs
        %with input[idx]
	  (void) strcpy(fis->input[%<idx>]->name,"%<name>");
	  fis->input[%<idx>]->bound[0] = %<range[0]>;
	  fis->input[%<idx>]->bound[1] = %<range[1]>;
	  %if EXISTS("mf")
	    %assign nmf = SIZE(mf,1)
	    fis->input[%<idx>]->mf_n = %<nmf>;
	    %foreach jdx = nmf
	      (void) strcpy(fis->input[%<idx>]->mf[%<jdx>]->label, "%<mf[jdx].name>");
	      (void) strcpy(fis->input[%<idx>]->mf[%<jdx>]->type, "%<mf[jdx].type>");
              %assign paramSize = SIZE(mf[jdx].params, 1)
			  fis->input[%<idx>]->mf[%<jdx>]->params = (real_T *)calloc(%<paramSize>, sizeof(real_T));
              if (fis->input[%<idx>]->mf[%<jdx>]->params == NULL) {
	             %<RTMSetErrStat("\"Memory Allocation Error\"")>;
	             return;
                }
	          %foreach pdx = paramSize
			     fis->input[%<idx>]->mf[%<jdx>]->params[%<pdx>] = %<mf[jdx].params[pdx]>;
	          %endforeach
	    %endforeach
	  %endif
        %endwith

      %endforeach
    }
    %endif

    %%
    %% Parse and setup the output record
    %%
    %assign noutputs = 0
    %if EXISTS("output")
    {
      IO    *io_list;
      int_T *out_mf_n;
      int_T i;

      %assign noutputs = SIZE(output,1)
      if ((out_mf_n = (int_T *)calloc(%<noutputs>, sizeof(int_T))) == NULL) {
	%<RTMSetErrStat("\"Memory Allocation Error\"")>;
	return;
      }
      %foreach idx = noutputs
        %assign nmf = 0
        %with output[idx]
	%if EXISTS("mf")
          %assign nmf = SIZE(mf,1)
        %endif
        %endwith
        out_mf_n[%<idx>] = %<nmf>;
      %endforeach
      io_list = fisBuildIoList(%<noutputs>, out_mf_n);
      free(out_mf_n);

      fis->out_n = %<noutputs>;
      if ( (fis->output = (IO **)calloc(%<noutputs>, sizeof(IO *))) == NULL ) {
	%<RTMSetErrStat("\"Memory Allocation Error\"")>;
	return;
      }
      for (i=0; i< %<noutputs>; i++) {
        fis->output[i] = io_list+i;
      }

      %foreach idx = noutputs
        %with output[idx]
	  (void) strcpy(fis->output[%<idx>]->name,"%<name>");
	  fis->output[%<idx>]->bound[0] = %<range[0]>;
	  fis->output[%<idx>]->bound[1] = %<range[1]>;
	  %if EXISTS("mf")
	    %assign nmf = SIZE(mf,1)
	    fis->output[%<idx>]->mf_n = %<nmf>;
	    %foreach jdx = nmf
	      (void) strcpy(fis->output[%<idx>]->mf[%<jdx>]->label, "%<mf[jdx].name>");
	      (void) strcpy(fis->output[%<idx>]->mf[%<jdx>]->type, "%<mf[jdx].type>");
              %assign paramSize = SIZE(mf[jdx].params, 1)
              %%
              %if LibIsEqual(fisType, "mamdani")
                fis->output[%<idx>]->mf[%<jdx>]->value_array = (real_T *)calloc(%<numOfPoints>, sizeof(real_T));
                if (fis->output[%<idx>]->mf[%<jdx>]->value_array == NULL) {
					%<RTMSetErrStat("\"Memory Allocation Error\"")>;
					return;
                }
			  %endif
			  %if LibIsEqual(fisType, "sugeno") && LibIsEqual(mf[jdx].type, "constant")
				fis->output[%<idx>]->mf[%<jdx>]->params = (real_T *)calloc(%<ninputs+1>, sizeof(real_T));
				if (fis->output[%<idx>]->mf[%<jdx>]->params == NULL) {
					%<RTMSetErrStat("\"Memory Allocation Error\"")>;
					return;
                }
				for (i = 0; i< %<ninputs>; i++) {
                    fis->output[%<idx>]->mf[%<jdx>]->params[i] = 0;
                }
                fis->output[%<idx>]->mf[%<jdx>]->params[%<ninputs>] = %<mf[jdx].params[0]>;
              %else
				fis->output[%<idx>]->mf[%<jdx>]->params = (real_T *)calloc(%<paramSize>, sizeof(real_T));
				if (fis->output[%<idx>]->mf[%<jdx>]->params == NULL) {
					%<RTMSetErrStat("\"Memory Allocation Error\"")>;
					return;
                }
 	            %foreach pdx = paramSize
				   fis->output[%<idx>]->mf[%<jdx>]->params[%<pdx>] = %<mf[jdx].params[pdx]>;
	            %endforeach
              %endif
              %%
	    %endforeach %% jdx = nmf
	  %endif
        %endwith

      %endforeach

      %%
      %% Parse and setup the Rules Record
      %%
      %assign nrules = 0
      %if EXISTS("rule")
	%assign nrules = SIZE(rule,1)
	fis->rule_n = %<nrules>;
	fis->rule_list = (int_T **) fisCreateMatrix(%<nrules>, fis->in_n + fis->out_n, sizeof(int_T));
	if ( (fis->rule_weight = (real_T *)calloc(%<nrules>,sizeof(real_T))) == NULL ) {
	  %<RTMSetErrStat("\"Memory Allocation Error\"")>;
	  return;
	}
	if ( (fis->and_or = (int_T *)calloc(%<nrules>,sizeof(int_T))) == NULL ) {
	  %<RTMSetErrStat("\"Memory Allocation Error\"")>;
	  return;
	}

	%foreach idx = nrules
	  %foreach jdx = ninputs
	    fis->rule_list[%<idx>][%<jdx>] = %<CAST("Number",rule[idx].antecedent[jdx])>;
	  %endforeach
	  %foreach jdx = noutputs
	    fis->rule_list[%<idx>][%<ninputs+jdx>] = %<CAST("Number",rule[idx].consequent[jdx])>;
	  %endforeach
	  fis->rule_weight[%<idx>] = %<rule[idx].weight[0]>;
	  fis->and_or[%<idx>]      = %<CAST("Number",rule[idx].connection[0])>;
	%endforeach

	fisAssignMfPointer(fis);
	fisAssignFunctionPointer(fis);

	if ( (fis->firing_strength = (real_T *)calloc(%<nrules>, sizeof(real_T))) == NULL ) {
	  %<RTMSetErrStat("\"Memory Allocation Error\"")>;
	  return;
	}
	if ( (fis->rule_output = (real_T *)calloc(%<nrules>, sizeof(real_T))) == NULL ) {
	  %<RTMSetErrStat("\"Memory Allocation Error\"")>;
	  return;
	}
	if ( (fis->mfs_of_rule = (real_T *)calloc(%<ninputs>, sizeof(real_T))) == NULL ) {
	  %<RTMSetErrStat("\"Memory Allocation Error\"")>;
	  return;
	}

	%if LibIsEqual(fisType, "mamdani")
	  fis->BigOutMfMatrix = (real_T *) calloc(%<nrules*numOfPoints>, sizeof(real_T));
	  if (fis->BigOutMfMatrix == NULL) {
	    %<RTMSetErrStat("\"Memory Allocation Error\"")>;
	    return;
	  }
	  fis->BigWeightMatrix = (real_T *) calloc(%<nrules*numOfPoints>, sizeof(real_T));
	  if (fis->BigWeightMatrix == NULL) {
	    %<RTMSetErrStat("\"Memory Allocation Error\"")>;
	    return;
	  }
    	  for (i = 0; i < %<noutputs>; i++) {
	    fisComputeOutputMfValueArray(fis, %<numOfPoints>);
	  }
	%endif
	fisCheckDataStructure(fis);
      %endif
    }
    %endif
    %endwith %% fis
    fis->next = NULL;
    %<LibBlockPWork(FISPointer, "", "", 0)> = fis;
  }
%endfunction %% Start



%% Function: mdlOutputs =======================================================
%% Abstract:
%%
%%
%function Outputs(block, system) Output
  /* %<Type> Block: %<Name> (%<ParamSettings.FunctionName>) */
  {
    FIS *fis = (FIS *)%<LibBlockPWork(FISPointer, "", "", 0)>;

    %% Copy over the input
    %assign ninputs = LibDataInputPortWidth(0)
    %foreach idx = ninputs
      fis->input[%<idx>]->value = %<LibBlockInputSignal(0, "", "", idx)>;
    %endforeach

    %% Compute the output
    fisEvaluate(fis, 101);

    %assign noutputs = LibDataOutputPortWidth(0)
    %foreach idx = noutputs
     %<LibBlockOutputSignal(0, "", "", idx)>  = fis->output[%<idx>]->value;
    %endforeach
  }
%endfunction



%% Function: Terminate ========================================================
%% Abstract:
%%
%function Terminate(block, system) Output
  /* %<Type> Block: %<Name> (%<ParamSettings.FunctionName>) */
  {
    FIS *fis = (FIS *)%<LibBlockPWork(FISPointer, "", "", 0)>;
    fisFreeFisNode(fis);

  }

%endfunction %% Terminate


%% EOF: sffis.tlc

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区在线播放| 国产一区二区在线电影| 日韩av中文字幕一区二区 | 99麻豆久久久国产精品免费优播| 91美女在线看| 久久精品免费在线观看| 天堂精品中文字幕在线| 成人国产精品免费网站| 久久夜色精品国产噜噜av| 三级欧美在线一区| 91成人免费电影| 1024国产精品| 国产成人一区二区精品非洲| 日韩欧美国产不卡| 日韩—二三区免费观看av| 欧美在线视频你懂得| 1024国产精品| 91亚洲精品乱码久久久久久蜜桃| 26uuu另类欧美| 另类小说欧美激情| 91精品啪在线观看国产60岁| 午夜久久久久久久久| 在线一区二区三区四区五区 | 亚洲人成人一区二区在线观看| 久久99精品一区二区三区三区| 欧美日韩一区二区三区四区| 亚洲色图欧美偷拍| 成人av电影在线观看| 国产免费观看久久| 成人免费视频caoporn| 国产调教视频一区| 国产麻豆一精品一av一免费| 精品国产一区二区三区不卡| 美女视频一区二区三区| 欧美大尺度电影在线| 韩国三级在线一区| 国产欧美日韩不卡免费| 国产成人三级在线观看| 日本一区二区三区在线不卡| 国产在线精品一区二区不卡了| 26uuu另类欧美亚洲曰本| 国产美女在线观看一区| 国产精品视频一二三区 | 国产在线不卡一区| 国产亚洲一二三区| av在线综合网| 一区二区三区不卡视频| 在线播放视频一区| 国产精品亚洲第一| 亚洲国产成人av好男人在线观看| 欧美亚洲国产bt| 美女视频黄a大片欧美| 久久人人97超碰com| 成人深夜在线观看| 亚洲在线观看免费| 欧美不卡激情三级在线观看| 国产精品亚洲专一区二区三区| 亚洲欧洲三级电影| 在线成人av网站| 国产suv精品一区二区三区 | 国产亚洲午夜高清国产拍精品| av毛片久久久久**hd| 香蕉久久一区二区不卡无毒影院 | 中文字幕免费一区| 日本精品一区二区三区四区的功能| 亚洲国产欧美一区二区三区丁香婷| 在线不卡a资源高清| 国产999精品久久久久久| 夜夜夜精品看看| 精品国产乱码久久久久久久久 | 欧美一区二区私人影院日本| 精品一区二区三区香蕉蜜桃| 亚洲免费观看视频| 日韩一级欧美一级| 91亚洲精品一区二区乱码| 久久黄色级2电影| 亚洲精品少妇30p| 久久蜜桃香蕉精品一区二区三区| 色综合欧美在线视频区| 国内精品嫩模私拍在线| 一区二区三区四区不卡在线| 精品国产自在久精品国产| 欧美性猛交xxxx黑人交| 国产精品亚洲视频| 麻豆精品在线看| 夜夜精品浪潮av一区二区三区| 国产三级精品在线| 日韩一级大片在线观看| 欧美偷拍一区二区| 不卡的电影网站| 国产毛片精品视频| 麻豆国产精品官网| 亚洲成在人线免费| 亚洲免费在线播放| 国产精品久久久久影院亚瑟| 久久蜜桃一区二区| 精品日韩欧美在线| 欧美日韩免费一区二区三区视频 | 国产精品亚洲а∨天堂免在线| 日本三级韩国三级欧美三级| 夜夜嗨av一区二区三区| 日韩美女精品在线| 中文字幕亚洲欧美在线不卡| 国产亚洲一区二区在线观看| 精品国产乱码久久久久久老虎| 日韩一区二区中文字幕| 91精品国产一区二区人妖| 欧美日韩三级一区| 91麻豆精品久久久久蜜臀| 欧美影院一区二区三区| 欧美性猛交xxxxxx富婆| 欧美视频一区二| 欧美唯美清纯偷拍| 在线观看亚洲精品| 在线国产亚洲欧美| 欧美精品亚洲二区| 日韩一区二区免费电影| 日韩女优av电影在线观看| 日韩欧美一区二区不卡| 精品久久久网站| 久久久久国产一区二区三区四区| 久久理论电影网| 一区二区高清在线| 亚洲国产视频直播| 天堂一区二区在线| 韩国成人在线视频| 国产99久久久国产精品潘金网站| av激情成人网| 欧美日韩一区不卡| 精品福利一二区| 中文在线一区二区| 一区二区三区日韩欧美| 亚洲va在线va天堂| 国产剧情av麻豆香蕉精品| 成人中文字幕在线| 在线精品视频一区二区| 欧美一级二级在线观看| 中国av一区二区三区| 亚洲精品国产成人久久av盗摄| 亚州成人在线电影| 国产精品中文字幕欧美| 99精品1区2区| 日韩一区二区在线看| 欧美激情中文不卡| 亚洲精品v日韩精品| 毛片一区二区三区| 91在线观看污| 欧美一区二区三区白人| 国产精品美女久久久久久久| 首页国产丝袜综合| 福利电影一区二区| 欧美日韩美女一区二区| 久久久久久电影| 亚洲va欧美va国产va天堂影院| 国产不卡高清在线观看视频| 欧美日韩精品二区第二页| 国产精品午夜电影| 日本在线不卡一区| 91丨九色porny丨蝌蚪| 日韩一区二区三免费高清| 自拍偷拍亚洲激情| 国产自产高清不卡| 欧美日韩dvd在线观看| 国产精品久久看| 久久成人精品无人区| 91成人看片片| 国产精品传媒视频| 精品一区二区三区久久| 欧美日韩国产影片| 综合网在线视频| 国产精品一区久久久久| 欧美日韩一级黄| 亚洲最大的成人av| 成人app软件下载大全免费| 337p日本欧洲亚洲大胆色噜噜| 午夜伊人狠狠久久| 色呦呦网站一区| 国产精品久久久爽爽爽麻豆色哟哟| 久久99精品国产麻豆不卡| 欧美精品久久天天躁| 一区二区三区四区亚洲| av在线这里只有精品| 国产亲近乱来精品视频 | 久久久久久久久久久久久久久99 | av日韩在线网站| 国产欧美一区二区在线观看| 九九在线精品视频| 欧美一级淫片007| 日本不卡123| 337p亚洲精品色噜噜噜| 午夜视黄欧洲亚洲| 欧美在线观看一区二区| 亚洲精品亚洲人成人网在线播放| 成人听书哪个软件好| 久久精品夜夜夜夜久久| 国产精品一级片| 国产蜜臀av在线一区二区三区| 国产成a人无v码亚洲福利| 久久综合久久99| 国内精品免费**视频|