File Exchange

## MATCHROW (v1.1, may 2008)

version 1.0 (2.23 KB) by

Match elements in the rows of a matrix

Updated

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

Liber Eleutherios

Mauricio Romero

### Mauricio Romero (view profile)

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.