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 に答える