Filter löschen
Filter löschen

detect same value

2 Ansichten (letzte 30 Tage)
pink
pink am 10 Jun. 2011
how do I detect on the elements of a (:, 1) there is the same value?
a=[1 34;
2 33;
2 45;
3 32;
4 65;
4 99;
5 11;
1 33;
6 22]

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 10 Jun. 2011
u = unique(a(:,1));
if length(u) ~= size(a,1)
%there were duplicates
end
If you want to find out which are equal to which,
bsxfun(@eq, a(:,1), a(:,1).'))
and that will return a logical matrix in which for row r, column c is set if a(r) == a(c)
  2 Kommentare
M M
M M am 6 Mär. 2013
How would you isolate the duplicated values? So I would know which values are duplicated and use them for another purpose? (The opposite of the unique function)
Walter Roberson
Walter Roberson am 6 Mär. 2013
setdiff(V, unique(V)) %for vector V, results are in sorted order
or
T = bsxfun(@eq, V(:), V(:).'); %for vector V
sum(T) > 1 %will be true at index K if V(K) is not unique

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by