如何解决evalfis错误呢

29日视图(30天)
Syahirah Eshah
Syahirah Eshah 2019年3月14日
回答: Humaira Aslam面2020年4月21日
我试着运行程序“一个机械手臂逆运动学建模”
l1 = 10;%第一臂的长度
l2 = 7;%第二臂的长度
θ₁= 0:0.1:π/ 2;%所有可能的θ₁值
θ= 0:0.1:π;%所有可能的θ值
[θ₁,θ₂]= meshgrid(θ₁,θ₂);%生成一个网格θ₁和θ值
X = l1 * cos(θ₁)+ l2 * cos(θ₁+θ₂);%计算x坐标
Y = l1 * sin(θ₁)+ l2 *罪(θ₁+θ₂);%计算y坐标
data1 = [X (:) Y(:)θ₁(:));%创建x-y-theta1数据集
data2 = [X (:) Y(:)θ(:));%创建x-y-theta2数据集
情节(X (:), Y (:),“r”。);
平等的;
包含(“X”,“字形大小”,10)
ylabel (“Y”,“字形大小”,10)
标题(“x - y坐标生成的所有θ₁和θ₂组合使用正运动学公式的,“字形大小”,10)
选择= anfisOptions;
opt.InitialFIS = 7;
opt.EpochNumber = 150;
opt.DisplayANFISInformation = 0;
opt.DisplayErrorValues = 0;
opt.DisplayStepSize = 0;
opt.DisplayFinalResults = 0;
disp (- - >培训第一简称ANFIS网络。)
anfis1 =简称anfis (data1、选择);
disp (- - >培训第二简称ANFIS网络。)
opt.InitialFIS = 6;
anfis2 =简称anfis (data2选择);
x = 0:0.1:2;% x坐标进行验证
y = 8:0.1:10;% y坐标进行验证
(X, Y) = meshgrid (X, Y);
c2 = (X。Y ^ 2 +。^ 2 - l1 ^ 2 - l2 ^ 2) / (2 * l1 * l2);
s2 =√1 - c2。^ 2);
THETA2D =量化(s2 c2);%θ推导出
k1 = l1 + l2。* c2;
k2 = l2 * s2;
THETA1D =量化(Y, X) -量化(k1, k2);%θ₁推导出
直到我运行下面的代码,使用evalfis我有错误
XY = (X (:) Y (:));
THETA1P = evalfis (anfis1, XY);%θ₁anfis1预测的
THETA2P = evalfis (anfis2, XY);% anfis2θ预测
我的错误:
错误使用evalfis(51)行
第二个参数必须是一个FIS结构。

接受的答案

DINI
DINI 2019年5月30日
嗨! ! !,when you use the evalfis function, you need to specify: to 什么数据 你想要评估和 什么file.fis 你想要做什么。
例如,我的代码的一部分
in_fis_0000 = genfis1 (mem、numMFs mfType);
out_fis_0000 =简称anfis (mem、in_fis_0000 epoch_n);
nnn = num2str (ii);
writefis (out_fis_0000 [“inf_”nnn]);
fis_0000 = readfis ([“inf_”nnn]);
inf_0000 = evalfis (previo fis_0000);%的最终评价
的步骤是:生成它,读它和评估

答案(1)

Humaira Aslam面
Humaira Aslam面 2020年4月21日
XY = (X (:) Y (:));
THETA1P = evalfis (anfis1, XY); %θ₁anfis1预测的
THETA2P = evalfis (anfis2, XY); % anfis2θ预测
嘿,只是改变了evalfis的位置(XY, anfis1) & evalfis (XY, anfis2)
为我工作。

类别

找到更多的在模糊推理系统调优帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!