0

まあ、私はmatlabプログラミングが初めてで、インデックス作成の問題と戦っています。私は現在、これまでのところ夢中になっている画像処理に取り組んでいます。とにかく、質問にジャンプしましょう。次のコードがあります

perm=randperm(size(X,2));
CX=X(:,perm(1:nclus));

コードを実行しようとしましたが、「インデックスがマトリックスの次元を超えています。私の知る限り、これは(:,perm(1:nclus))マトリックスの次元よりも大きいためだと思います。この問題を解決する方法を知りたいです。

X: は列 nclus: クラスター数の入力ポイントであることに注意してください。

エラーの原因と考えられる解決策を教えていただければ幸いです。

ありがとうございました

サーミ語

4

1 に答える 1

1

nclus2次元のマトリックスからランダムな列を取得したいだけだと推測してX、これを試してください:

perm=randperm(size(X,2));
CX=X(:,perm<=nclus);

発生するエラーはX、あまりにも多くのディメンションで呼び出されたために発生するものではありません。おそらく perm のディメンションを超えていることが原因です。これを 1 行ずつ実行してみてください。

perm = randperm(size(X,2)); %Should be ok
idx = perm(1:nclus); %Probably fails
X(:,idx)
于 2013-02-04T15:38:07.453 に答える