How to add cells (m) to an already defined array (nx1) so that the new array is (n+m x 1)

1 view (last 30 days)
I have made a search type tool which searches for only .mdl files in the folders selected so I used
a= dir(dname);
a={a(:).name}';
a(1:2)=[];
file_find = '\w*.mdl';
matchStr= regexp(a,file_find,'match');
R=matchStr(~cellfun('isempty',matchStr));
So its like a is (7 x 1) cell array after that the code does a search for only .mdl and such that R is now (3 x 1). Now this whole code is nested in a loop. When it runs second time R is (1 x 1). I want a combined cell so that the final cell array would be like 3+1=4 ( 4 x 1)
  1 Comment
Stephen23
Stephen23 on 31 Dec 2015
Edited: Stephen23 on 31 Dec 2015
Why not just read the documentation and get dir to perform this task for you:
fmtch = '*.mtc';
ffull = fullfile(dname,fmtch);
A = dir(ffull);
Not only is this faster it avoids using regexp. Much neater!

Sign in to comment.

Accepted Answer

Kiran
Kiran on 31 Dec 2015
As the code is nested in a loop, value of R is getting overwritten each time. Instead of it, you can append the new value of R as follow:
R = { matchStr(~cellfun('isempty',matchStr)) ; R};

More Answers (0)

Categories

Find more on Data Types 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!