ここに私のMATLABコードがあります:
[numeric, pics] = xlsread('matrix.xls');
[r,c] = size(pics);
done = r*c;
randvecall = randsample(done, done, true);
randvec = randvecall([1,diff(randvecall)]~=0);
currk = randvec(k);
基本的にこれが行うことは、Microsoft Excel スプレッドシートから値の配列を構築することです。配列に重複を入れたいが、連続した重複はしたくないので、それらを削除するコード行を追加しました。randvecall に手動で値を入力して上記のコードを実行すると、完全に機能します。ただし、上記のコードを実行すると、次のエラーが発生します。
??? Error using ==> horzcat
CAT arguments dimensions are not consistent.
Error in ==> testAS_randsample at 76
randvec = randvecall([1,diff(randvecall)]~=0);
なぜこうなった?たとえば、これは機能します:
randvecall=[1 2 3 4 5 5 5 5 8 7 8 8];
randvec = randvecall([1,diff(randvecall)]~=0);
disp(randvec)
randvec = [1 2 3 4 5 8 7 8]
それがまさに私のコードでやりたいことです。しかし、実際のコードで horzcat エラー メッセージが表示されるのはなぜですか? 誰でもこれで私を助けることができますか? randsample が randvecall 配列を構築する方法と関係があるに違いありませんが、なぜこのエラー メッセージが表示されるのかわかりません。