• 大小: 90KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-04
  • 语言: C/C++
  • 标签: 模糊逻辑  

资源简介

利用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.embed.manifest
     文件         472  2016-10-19 10:24  Fuzzy_test\Debug\Fuzzy_test.exe.embed.manifest.res
     文件         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\link-cvtres.read.1.tlog
     文件           2  2016-10-19 10:24  Fuzzy_test\Debug\link-cvtres.write.1.tlog
     文件           2  2016-10-19 10:24  Fuzzy_test\Debug\link.6800-cvtres.read.1.tlog
     文件           2  2016-10-19 10:24  Fuzzy_test\Debug\link.6800-cvtres.write.1.tlog
     文件           2  2016-10-19 10:24  Fuzzy_test\Debug\link.6800.read.1.tlog
     文件           2  2016-10-19 10:24  Fuzzy_test\Debug\link.6800.write.1.tlog
     文件        1672  2016-10-19 10:24  Fuzzy_test\Debug\link.command.1.tlog
     文件        3568  2016-10-19 10:24  Fuzzy_test\Debug\link.read.1.tlog
     文件         978  2016-10-19 10:24  Fuzzy_test\Debug\link.write.1.tlog
     文件      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个文件信息

评论

共有 条评论

相关资源