matlab - How to select rows from character array that match char string and save them in a new array? -
i have char array contains list of files names (each row 1 file) (char, 526x26)
val = 0815_5275_uba_a_1971.txt 0815_5275_uba_a_1972.txt 0823_6275_uba_a_1971.txt 0823_6275_uba_a_1972.txt 0823_6275_uba_a_1973.txt ...
i have variable
b = '0815_5275'
i'd select rows (filenames) start b , save them in new array c.
this should simple, somehow can't make work. i've got this:
c = a(a(:,1:9) == b);
but error message:
error using == matrix dimensions must agree.
i not know in advance how many rows match, can not pre-define empty array.
thanks, appreciated!
try ismember(a(:, 1:numel(b)), b, 'rows')
rather logical vector indexes rows want
and now
a(c,:)
extract rows
the reason you're getting dimension mismatch error because a(:,1:9) has many rows b has 1 , matlab not automatically broadcast octave or python. using either repmat
or bsxfun
in case ismember
correct function choose.
Comments
Post a Comment