当前位置: 首页 > news >正文

江西省住房和城乡建设厅官方网站安卓手机搭建wordpress

江西省住房和城乡建设厅官方网站,安卓手机搭建wordpress,建设企业网站内容,做动漫的网站上一篇文章#xff08;C /C语言实现模糊控制#xff09;介绍了C/C中实现模糊控制该怎么做#xff0c;开始提到的MATLAB模糊控制的C/C模糊控制接口fis.c库#xff0c;不过这个文件有点老#xff0c;在用VS2010编译的时候一大堆错误#xff0c;在网上找关于C中使用 fis.c 的…上一篇文章C /C语言实现模糊控制介绍了C/C中实现模糊控制该怎么做开始提到的MATLAB模糊控制的C/C模糊控制接口fis.c库不过这个文件有点老在用VS2010编译的时候一大堆错误在网上找关于C中使用 fis.c 的资料结果一点结果都没有说怎么引用fis.c文件网上的都是说什么头文件extern C{} 的老一套问题是fis.c文件中大多数的函数都是static修饰的不可能自己再做个.h的头文件途径只有一条用#include fis.c 包含这个C语言文件问题是一包含就是一大堆错误后来看fis.c的代码发现原来里面有很多过时的语法C语言可以编译但是C不可以比如模糊控制的主要数据结构FIS的定义原先的定义如下 typedef struct fis_node {int handle;int load_param;char name[STR_LEN];char type[STR_LEN];char andMethod[STR_LEN];char orMethod[STR_LEN];char impMethod[STR_LEN];char aggMethod[STR_LEN];char defuzzMethod[STR_LEN];int userDefinedAnd;int userDefinedOr;int userDefinedImp;int userDefinedAgg;int userDefinedDefuzz;int in_n;int out_n;int rule_n;int **rule_list;DOUBLE *rule_weight;int *and_or; /* AND-OR indicator */DOUBLE *firing_strength;DOUBLE *rule_output;/* Sugeno: output for each rules *//* Mamdani: constrained output MF values of rules */struct io_node **input;struct io_node **output;DOUBLE (*andFcn)(DOUBLE, DOUBLE);DOUBLE (*orFcn)(DOUBLE, DOUBLE);DOUBLE (*impFcn)(DOUBLE, DOUBLE);DOUBLE (*aggFcn)(DOUBLE, DOUBLE);DOUBLE (*defuzzFcn)();DOUBLE *BigOutMfMatrix; /* used for Mamdani system only */DOUBLE *BigWeightMatrix;/* used for Mamdani system only */DOUBLE *mfs_of_rule; /* MF values in a rule */DOUBLE *bias; /*bias, to be tuned when no rules are fired*/int isbias;struct fis_node *next; } FIS;上述的定义中defuzzFcn这个指针函数的定义没有参数而后面的Defuzzification methods都是带参数的甚至第一个参数就是FIS结构体本身如 static DOUBLE defuzzCentroid(FIS *fis, int m, DOUBLE *mf, int numofpoints)所以要修改这个定义如下 typedef struct fis_node FIS;typedef struct fis_node {int handle;int load_param;char name[STR_LEN];char type[STR_LEN];char andMethod[STR_LEN];char orMethod[STR_LEN];char impMethod[STR_LEN];char aggMethod[STR_LEN];char defuzzMethod[STR_LEN];int userDefinedAnd;int userDefinedOr;int userDefinedImp;int userDefinedAgg;int userDefinedDefuzz;int in_n;int out_n;int rule_n;int **rule_list;DOUBLE *rule_weight;int *and_or; /* AND-OR indicator */DOUBLE *firing_strength;DOUBLE *rule_output;/* Sugeno: output for each rules *//* Mamdani: constrained output MF values of rules */struct io_node **input;struct io_node **output;DOUBLE (*andFcn)(DOUBLE, DOUBLE);DOUBLE (*orFcn)(DOUBLE, DOUBLE);DOUBLE (*impFcn)(DOUBLE, DOUBLE);DOUBLE (*aggFcn)(DOUBLE, DOUBLE);//DOUBLE (*defuzzFcn)(); hemmingway hemmingway163.com 2013/01/02DOUBLE (*defuzzFcn)(FIS *fis, int m, DOUBLE *mf, int numofpoints); DOUBLE *BigOutMfMatrix; /* used for Mamdani system only */DOUBLE *BigWeightMatrix;/* used for Mamdani system only */DOUBLE *mfs_of_rule; /* MF values in a rule */DOUBLE *bias; /*bias, to be tuned when no rules are fired*/int isbias;struct fis_node *next; } FIS;接下来是printf和double的宏定义问题原先针对的是控制台程序或者Linux下控制台如果要把模糊控制用到MFC环境需要修改这个宏定义方便用到MFC界面程序中修改过后如下所示 /* Define portable printf and double */ #if defined(MATLAB_MEX_FILE) # define PRINTF mexPrintf # define DOUBLE real_T #elif defined(__SIMSTRUC__) # define PRINTF ssPrintf # define DOUBLE real_T #elif defined(_MSC_VER)#define PRINTF odprintf#include stdarg.h #include Windows.hint _cdecl odprintf(const char* fmt, ...) {char buf[4096], *pbuf;va_list args;int ret -1;va_start(args, fmt);ret vsnprintf_s(p, sizeof(buf), _TRUNCATE, fmt, args);p ret;va_end(args);while (pbuf isspace(*p)){*--p \0;*p \r;*p \n;*p \0;}OutputDebugStringA(buf);return(ret); } #else # define PRINTF printf # define DOUBLE double #endif接下来修改一下fisError这个函数里有有个exit(1); 在MFC界面程序中不需要这个的需要修改一下 static void fisError(char *msg) { #ifdef MATLAB_MEX_FILEmexErrMsgTxt(msg); #elsePRINTF(%s\n,msg);#ifndef _MSC_VERexit(1); #endif#endif }还有一个函数封装了fopen()函数打开文件里面有个多余的定义语句 FILE *fopen();  这个在C中不支持需要注释掉它 /* an friendly interface to fopen() */ static FILE *fisOpenFile(char *file, char *mode) {FILE *fp /*, *fopen()*/;if ((fp fopen(file, mode)) NULL){PRINTF(The file %s cannot be opened., file);fisError(\n);}return(fp); }再就是fis.c文件后面的几个函数定义使用 __STDC__ 宏支持了一种老旧的语法格式如下所示 /* return data matrix */ DOUBLE ** #ifdef __STDC__ returnDataMatrix(char *filename, int *row_n_p, int *col_n_p) #else returnDataMatrix(filename, row_n_p, col_n_p) char *filename; int *row_n_p; int *col_n_p; #endif {//code... }问题是MFC程序中 定义 __STDC__ 宏会出现错误的而那种默认的老旧C语法格式C中又不支持所以所有这样定义的函数都要删掉那些多余的东西如上面的函数改成这样 /* return data matrix */ DOUBLE **returnDataMatrix(char *filename, int *row_n_p, int *col_n_p) {//code... }改完以后没有错误了用下面的语句将fis.c文件包含到一个CPP文件的时候问题又来了出现 fatal error LNK1169: 找到一个或多个多重定义的符号按照一般在网上搜索的解决方法是在项目-属性-链接器-命令行-附加选项中加 /force  这样没有错误了但是还是有很多警告Warning Link 一大堆乱七八糟的警告其实真正的方法是在【解决方案资源管理器】中选中fis.c文件单击右键的属性打开fis.c属性页对话框在 【配置属性】-【常规】-【项类型】中将这个配置为【C/C 标头】这样就没有什么问题了。 /*Start of the regular fis control*/ extern C{ #include fis.c }使用方法总结如下 /** 这是修改过后的fis.c模糊推理系统库函数可以移植C/C环境使用在VS2010的MFC环境经过测试* 1、将fis.c文件拷贝到项目中* 2、修改VS2010的配置属性项目-属性-C/C-预处理器-预处理器定义添加* _CRT_SECURE_NO_WARNINGS* 3、在【解决方案资源管理器】中选中fis.c文件单击右键的属性* 【配置属性】-【常规】-【项类型】配置为【C/C 标头】* 4、如果是C语言文件(*.c)使用* #include fis.c* 包含接口库文件* 5、如果是C文件使用* extern C{* #include fis.c* }* 包含库文件。* 祝你使用愉快* hemmingway hemmingway163.com 2013/1/2*/修改过后的fis.c文件可以从这里下载 http://download.csdn.net/detail/hemmingway/4953923
http://www.pierceye.com/news/144668/

相关文章:

  • 泰安网站制作推荐电脑网页游戏排行榜前十名
  • 石家庄最好的网站建设公司上海都有哪些企业公司
  • 网站的链接要怎么做官网制作公司
  • 学生成绩管理系统 网站建设站长之家源码下载
  • wap多用户网站微信端的网站开发python
  • 网络营销中自建网站厦门湖里区建设局网站
  • 公司建设网站的申请信用卡做盗版影视网站违法吗
  • 商务网站推广技巧包括什么移动网站开发教程
  • 北京网站备案域名温州制作网站公司
  • 门户网站建设工作流程做网站的背景图片
  • 用360云盘做网站简洁个人博客网站模板
  • 沈阳网站建设 网络服务wordpress媒体库图片不显示
  • 什么公司做网站出名大商创 多用户商城
  • 学校网站管理网站制作开发及优化是什么
  • wordpress获取所有标签页那些网站用不着做优化
  • 大有网网站现在较为常用的网站开发技术
  • 太原建站公司有哪些网站统计 wordpress
  • 网站轮播图怎么保存盛锡福网站
  • 做网站用百度浏览器网络营销案例分析试题
  • 当建设部门网站南宁网站的优化
  • wordpress访问文件夹成都黑帽seo
  • 上海市建设工程安全质量监督总站网站做配资网站
  • 网站管理建设的需求分析小程序开发教程免费
  • 石家庄网站建设电话重庆最便宜的网站建设
  • 人才网站建设策划书pc网站建设
  • 做网站用哪几个端口 比较好微信营销
  • 网站开发价格有专业做网站的吗网站公司
  • 西安网站建设全包做网站要多少
  • 如何建设传奇网站怎样做招嫖网站
  • 企石镇网站仿做连云港网站开发