File Exchange

image thumbnail

MATCHROW (v1.1, may 2008)

version 1.0 (2.23 KB) by

Match elements in the rows of a matrix

0 Downloads

Updated

View License

Editor's Note: This file was a File Exchange Pick of the Week

MATCHROW - match elements in the rows of a matrix

TF = MATCHROW(M,S) returns a column vector containing a logical 1 (true)where the rows of M contain (in any order) all the elements of S and 0 (false) otherwise. M and S can be a cell array of strings.
If a element occurs N times in S, than it has to be present at least N times in these rows of M as well.

Examples:
M = [ 1 2 3 4 5 ; 1 2 2 4 3; 1 3 4 4 3 ; 3 2 4 2 5 ; 1 4 3 2 4 ] ;
Q = matchrow(M,[1 2 4]) % -> [1 ; 1 ; 0 ; 0 ; 1] ;
M(Q,:) % -> 1 2 3 4 5
% 1 2 2 4 3
% 1 4 3 2 4

Q = matchrow(M,[1 2 4 4])
M(Q,:) % -> 1 4 3 2 4

Q = matchrow({'a','X','c','Y'; 'a','X','Y','d' ;
'b','X','d','e'},{'X','Y'}) % -> [1 ; 1 ; 0] ;

A = rand(999,999) ;
x = 27 ;
tic
find(matchrow(A,A(x,:))) == x % -> true!
toc

MATCHROW is vectorized and pretty quick ...

version 1.1, may 2008

Comments and Ratings (4)

John D'Errico

Good, readable help. Error checks. Good examples, and an H1 line. Nicely vectorized. Its got a "see also" line, the author's name, date written, etc. There are many internal comments, a proper use of warning, and no mlint flags.

This is an example of a code other authors should emulate.

C. S.

Useful, thanks.

Updates

fixed some minor spelling errors

MATLAB Release
MATLAB 6.5 (R13)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video