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

1 次查看(过去 30 天)
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 个评论
Stephen23
Stephen23 2015-12-31
编辑:Stephen23 2015-12-31
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!

请先登录,再进行评论。

采纳的回答

Kiran
Kiran 2015-12-31
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};

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by