1

我收到一个使用 FCM 无法理解的错误。

如果我设置文档中提到的选项,它会输出此错误:

??? 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');
4

1 回答 1

2

问题是fcm期望接收选项数组,而不是字符串。你正在通过'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,因此请随意为您想要默认值的任何选项执行此操作。

于 2012-07-17T17:51:25.673 回答