matlab'readfis,求好人,Matlab readfis错误 帮忙解决个问题!

C#与Matlab混合编程中,我在M文件中使用模糊工具生产的fis文件,发生错误。我用 a = readfis('1')

a =

name: '1'

type: 'mamdani'

andMethod: 'min'

orMethod: 'max'

defuzzMethod: 'centroid'

impMethod: 'min'

aggMethod: 'max'

input: [1x2 struct]

output: [1x1 struct]

rule: [1x9 struct]

>> showfis(a)

1.  Name             1

2.  Type             mamdani

3.  Inputs/Outputs   [2 1]

4.  NumInputMFs      [3 3]

5.  NumOutputMFs     3

6.  NumRules         9

7.  AndMethod        min

8.  OrMethod         max

9.  ImpMethod        min

10. AggMethod        max

11. DefuzzMethod     centroid

12. InLabels         A

13.                  B

14. OutLabels        C

15. InRange          [-20 -5]

16.                  [0 5]

17. OutRange         [0 30]

18. InMFLabels       高

19.                  中

20.                  低

21.                  小

22.                  中

23.                  大

24. OutMFLabels      低

25.                  中

26.                  高

27. InMFTypes        trapmf

28.                  trimf

29.                  trapmf

30.                  trapmf

31.                  trimf

32.                  trapmf

33. OutMFTypes       trapmf

34.                  trimf

35.                  trapmf

36. InMFParams       [-26.4 -20.4 -15.97 -12.9]

37.                  [-20 -12.5 -5 0]

38.                  [-11 -9.028 -4.41 1.59]

39.                  [-2.25 -0.25 1.263 2.25]

40.                  [0 2.5 5 0]

41.                  [2.52 3.644 5.03 7.03]

42. OutMFParams      [-13.5 -1.5 6.865 13.5]

43.                  [0 15 30 0]

44.                  [15.8 22 29.96 42.8]

45. Rule Antecedent  [1 3]

46.                  [2 3]

47.                  [3 3]

48.                  [1 2]

49.                  [2 2]

50.                  [3 2]

51.                  [1 1]

52.                  [2 1]

53.                  [3 1]

45. Rule Consequent  3

46.                  3

47.                  2

48.                  3

49.                  2

50.                  1

51.                  2

52.                  1

53.                  1

45. Rule Weight      1

46.                  1

47.                  1

48.                  1

49.                  1

50.                  1

51.                  1

52.                  1

53.                  1

45. Rule Connection  1

46.                  1

47.                  1

48.                  1

49.                  1

50.                  1

51.                  1

52.                  1

53.                  1

根据这些属性在M中用

a=newfis('NO1');

a=addvar(a,'input','A',[-20,5]);

a=addmf(a,'input',1,'高','trapmf',[-26.4 -20.4 -15.97 -12.9]);

a=addmf(a,'input',1,'中','trimf',[-20 -12.5 -5 0]);

a=addmf(a,'input',1,'低','trapmf',[-11 -9.028 -4.41 1.59]);

a=addvar(a,'input','B',[0,5]);

a=addmf(a,'input',1,'小','trapmf',[-2.25 -0.25 1.263 2.25]);

a=addmf(a,'input',1,'中','trimf',[0 2.5 5 0]);

a=addmf(a,'input',1,'大','trapmf',[2.52 3.644 5.03 7.03]);

a=addvar(a,'output','C',[0,30]);

a=addmf(a,'output',1,'低','trapmf',[-13.5 -1.5 6.865 13.5]);

a=addmf(a,'output',1,'中','trimf',[0 15 30 0]);

a=addmf(a,'output',1,'高','trapmf',[15.8 22 29.96 42.8]);

rulelist=[1 3 3 1 1

2 3 3 1 1

3 3 2 1 1

1 2 3 1 1

2 2 2 1 1

3 2 1 1 1

1 1 2 1 1

2 1 1 1 1

3 1 1 1 1];

a=addrule(a,rulelist);

a=setfis(a,'DefuzzMethod','centroid');

writefis(a,'NO1');

表示

然而用

a=readfis('NO1');

发生如下错误

a = readfis('NO1')

??? Error using ==> parsrule at 174

Input MF index is too high

Error in ==> readfis at 231

out=parsrule(out,txtRuleList,'indexed');

求如何解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值