0

MATLAB で k-means を使用しています。有効なクラスターを処理するには、クラスターの位置が変更されなくなるまでループを実行する必要があります。そのため、10 回を超える繰り返しのループが可能です。そして、それは長い時間がかかるかもしれません。

そのため、ユーザーに反復を設定させたいと考えています。例: ユーザーが反復に '3' を入力すると、反復は 3 回まで継続されます。反復プロセスのスニペットを次に示します。

   while 1,
            d=DistMatrix3(data,c);   % calculate the distance 
            [z,g]=min(d,[],2);      % set the matrix g group

            if g==temp,             % if the iteration doesn't change anymore
                break;              % stop the iteration
            else
                temp=g;             % copy the matrix to the temporary variable
            end
            for i=1:k
                f=find(g==i);
                if f                % calculate the new centroid 
                    c(i,:)=mean(data(find(g==i),:),1);
                end
            end
  end

私が知っているのは、ユーザーが反復回数を入力できるように変数を定義する必要があるということだけです。その変数は、ループ/反復プロセスに使用されます。まで削除while 1してみましたfor i=1:iteration。しかし、それはまだ私が望むようには機能しません。誰でもこれを行う方法を知っていますか?

すべての答えは高く評価されます。

ありがとうございました。

4

1 に答える 1