поиск местоположения набора элементов в матрице - Matlab - PullRequest
0 голосов
/ 02 марта 2012

У меня есть матрица А.Я хочу найти все уникальные элементы A так: b = unique (A);даст массив всех уникальных элементов в A.

Я хочу найти расположение этих элементов в A. Если быть точным, элементы в b повторяются в A, и я хочу найти для каждого элемента вб его строк в А.

Как это можно сделать без цикла?

Ответы [ 2 ]

1 голос
/ 02 марта 2012

Команда

[b,m,n] = unique(A);

должен предоставить вам все данные, необходимые для ответа на ваш вопрос.

0 голосов
/ 03 марта 2012

Вот пример кода, который делает то, что я думаю, вы пытаетесь сделать:

%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.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...