find the repetition of matrix rows
9 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
yousef Yousef
am 7 Mai 2014
Bearbeitet: Image Analyst
am 9 Mai 2014
I want to find out if the row i of mxn matrix is repeated ,the code should give logic 1.Otherwise zero"there are many ways but Im searching for the best one" Thanks
2 Kommentare
Akzeptierte Antwort
Roberto
am 9 Mai 2014
Bearbeitet: Roberto
am 9 Mai 2014
a = [1 2 3; 4 5 6;1 2 3; 3 2 4; 1 2 3; 3 2 1; 1 3 2] ;
row2check = 1;
repeated = 0 ;
for i = 1 : size(a,1)
repeated = repeated + prod(double([a(row2check,:)== a(i,:)])) ;
end
fprintf('\n Row number %i is reapeated %i times in matrix!\n\n',row2check,repeated);
0 Kommentare
Weitere Antworten (1)
Image Analyst
am 9 Mai 2014
Bearbeitet: Image Analyst
am 9 Mai 2014
Using ismember() is the usual method. Try this:
m = randi(9, [5000, 3]); % Create sample data.
% For demo, let's make sure row 9 is a repeat.
% In other words, row 9 is a duplicate of row 1.
m(9,:) = m(1,:);
% Let's see if row i is repeated
i = 1; % Could be any number up to size(m, 1);
% Use ismember to find repeated rows.
[lia, locb] = ismember(m, m(i,:), 'rows');
% locb is a logival vector. Find the actual row numbers.
repeatedRows = find(locb)
0 Kommentare
Siehe auch
Kategorien
Find more on Matrices and Arrays in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!