我收到了一个我不理解使用FCM的错误。
如果我在Documentation中设置类似的选项,则会输出此错误:
??? Error using ==> zeros
Leading inputs must be numeric.
Error in ==> fcm at 83
obj_fcn = zeros(max_iter, 1); % Array for objective function
Error in ==> fcm at 82
[centers, U, objFun] = fcm(data, 6, 'options');
如果我删除选项,代码运行正常,这里是完整的代码:
[centers, U, objFun] = fcm(data, 6, 'options');
plot(data(:,1), data(:,2),'o');
maxU = max(U);
index1 = find(U(1, :) == maxU);
index2 = find(U(2, :) == maxU);
line(data(index1,1),data(index1, 2),'linestyle','none',...
'marker','*','color','g');
line(data(index2,1),data(index2, 2),'linestyle','none',...
'marker', '*','color','r');
答案 0 :(得分:2)
问题是fcm
期望接收选项 array ,而不是字符串。你正在通过'options'
,但你应该这样做:
options(1) = 2.0;
options(2) = 100;
options(3) = 1e-5;
options(4) = 1;
[centers, U, objFun] = fcm(data, 6, options); % notice no quotes!
我正在使用fcm
文档中指定的默认值。您可以将它们更改为您喜欢的任何内容。
或者,文档指定如果您想要默认值,则可以将选项设置为NaN
,因此您可以随意选择默认值。