image thumbnail

MATCHROW (v1.1, may 2008)

version 1.0.0.0 (2.23 KB) by Jos (10584)
Match elements in the rows of a matrix

3K Downloads

Updated 14 May 2008

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

Cite As

Jos (10584) (2021). MATCHROW (v1.1, may 2008) (https://www.mathworks.com/matlabcentral/fileexchange/14520-matchrow-v1-1-may-2008), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R13
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!