0
私は行列Aを持っています。 私はすべてのユニークな要素がAであることを発見したい: b =ユニーク(A);行列内の要素の集合の位置を見つける - Matlab
正確に言えば、b の要素はAで繰り返され、bの各要素を検索したいその行はA.
どのようにループなしでそれを行うことができますか?
私は行列Aを持っています。 私はすべてのユニークな要素がAであることを発見したい: b =ユニーク(A);行列内の要素の集合の位置を見つける - Matlab
正確に言えば、b の要素はAで繰り返され、bの各要素を検索したいその行はA.
どのようにループなしでそれを行うことができますか?
[b,m,n] = unique(A);
コマンドは、あなたの質問に答えるために必要なすべてのデータを与える必要があります。ここで
は、私はあなたがやろうとしていると思う何がいくつかのサンプルコードです:
%Test data
A = [...
1 2 3 4; ...
4 5 6 7; ...
8 1 3 4];
%Basic "unique" call
[B, ix_A, ix_B] = unique(A);
%Note that the indexes from unique can be used as follows
isequal(A(ix_A), B) %Returns true
isequal(B(ix_B), A(:)) %Returns true
%To find a row (and column) in A where each element in B can be found we
%just need to convert the linear indexs into row/column subscripts
[row, column] = ind2sub(size(A), ix_A);
% Note that in general, multiple rows will contain each value from A.
% This will always produce one of the rows (and columns), pracitcially,
% it looks like to returns the last row containing the value.
あなたはインデックスが渡すことによって、値の最初または最後の発生である「最初の」や「最後返したかどうかを制御することができます'をユニークな関数に変換します。また、一意の要素ではなく一意の行を検索する場合は、「行」を渡す必要があります。 –
質問の私の理解は、ユニークな行ではなく、要素ごとの一意の値が望まれていました。しかしそれは良い点です。私は、「ユニーク」が「最初」と「最後」のキーワードをサポートしていることを知らなかった。それは良いヒントです。 – Pursuit