资源简介
利用MATLAB模糊逻辑工具箱 改写的基于c++实现的模糊逻辑 可供参考
代码片段和文件信息
/*
* Stand-alone C codes for fuzzy inference systems.
* (This file is included in fismain.c)
* J.-S. Roger Jang 1994.
* Copyright 1994-2001 The MathWorks Inc.
*/
/*
* Copyright 1994-2005 The MathWorks Inc.
*/
//#ifndef __FIS__
//# define __FIS__
#include
#include
#include
#include
#include “fis.h“
/***********************************************************************
Macros and definitions
**********************************************************************/
/* 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
#else
# define PRINTF printf
# define DOUBLE double
#endif
#ifndef ABS
# define ABS(x) ( (x) > (0) ? (x): (-(x)) )
#endif
#ifndef MAX
# define MAX(xy) ( (x) > (y) ? (x) : (y) )
#endif
#ifndef MIN
# define MIN(xy) ( (x) < (y) ? (x) : (y) )
#endif
#define MF_PARA_N 4
#define STR_LEN 500
#define MF_POINT_N 101
/* debugging macros */
/*
#define PRINT(expr) printf(#expr “ = %g\n“ (double)expr)
#define PRINTMAT(matmn) printf(#mat “ = \n“); fisPrintMatrix(matmn)
#define FREEMAT(matm) printf(“Free “ #mat “ ...\n“); fisFreeMatrix(matm)
#define FREEARRAY(array) printf(“Free “ #array “ ...\n“); free(array)
*/
#if (defined(MATLAB_MEX_FILE) && !defined(__SIMSTRUC__))
# define FREE mxFree
#else
# define FREE free
#endif
#define FREEMAT(matm) fisFreeMatrix(matm)
#define FREEARRAY(array) FREE(array)
/***********************************************************************
Data types
**********************************************************************/
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;
typedef struct io_node {
char name[STR_LEN];
int mf_n;
DOUBLE bound[2];
DOUBLE value;
struct mf_node **mf;
} IO;
typedef struct mf_node {
char label[STR_LEN]; /* MF name */
char type[STR_LEN]; /* MF type */
int n
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-11-26 19:20 Fuzzy_test\
目录 0 2018-11-26 19:20 Fuzzy_test\Debug\
文件 2298 2016-10-19 10:24 Fuzzy_test\Debug\CL.read.1.tlog
文件 444 2016-10-19 10:24 Fuzzy_test\Debug\CL.write.1.tlog
文件 5146 2016-10-19 10:24 Fuzzy_test\Debug\Fuzzy_test.Build.CppClean.log
文件 406 2016-10-19 10:24 Fuzzy_test\Debug\Fuzzy_test.exe.em
文件 472 2016-10-19 10:24 Fuzzy_test\Debug\Fuzzy_test.exe.em
文件 381 2016-10-19 10:24 Fuzzy_test\Debug\Fuzzy_test.exe.intermediate.manifest
文件 91 2016-10-19 10:24 Fuzzy_test\Debug\Fuzzy_test.lastbuildstate
文件 11369 2016-10-19 10:24 Fuzzy_test\Debug\Fuzzy_test.log
文件 0 2016-10-19 10:24 Fuzzy_test\Debug\Fuzzy_test.write.1.tlog
文件 210 2016-10-19 10:24 Fuzzy_test\Debug\Fuzzy_test_manifest.rc
文件 722 2016-10-19 10:24 Fuzzy_test\Debug\cl.command.1.tlog
文件 2 2016-10-19 10:24 Fuzzy_test\Debug\li
文件 2 2016-10-19 10:24 Fuzzy_test\Debug\li
文件 2 2016-10-19 10:24 Fuzzy_test\Debug\li
文件 2 2016-10-19 10:24 Fuzzy_test\Debug\li
文件 2 2016-10-19 10:24 Fuzzy_test\Debug\li
文件 2 2016-10-19 10:24 Fuzzy_test\Debug\li
文件 1672 2016-10-19 10:24 Fuzzy_test\Debug\li
文件 3568 2016-10-19 10:24 Fuzzy_test\Debug\li
文件 978 2016-10-19 10:24 Fuzzy_test\Debug\li
文件 127874 2016-10-19 10:24 Fuzzy_test\Debug\main.obj
文件 438 2016-10-19 10:24 Fuzzy_test\Debug\mt.command.1.tlog
文件 210 2016-10-19 10:24 Fuzzy_test\Debug\mt.read.1.tlog
文件 402 2016-10-19 10:24 Fuzzy_test\Debug\mt.write.1.tlog
文件 630 2016-10-19 10:24 Fuzzy_test\Debug\rc.command.1.tlog
文件 374 2016-10-19 10:24 Fuzzy_test\Debug\rc.read.1.tlog
文件 382 2016-10-19 10:24 Fuzzy_test\Debug\rc.write.1.tlog
文件 52224 2016-10-19 10:24 Fuzzy_test\Debug\vc100.idb
文件 61440 2016-10-19 10:24 Fuzzy_test\Debug\vc100.pdb
............此处省略10个文件信息
- 上一篇:RS232串口通信C++
- 下一篇:RFID读卡程序设计
评论
共有 条评论