Matlab:有条件地选择向量的元素

时间:2013-02-13 17:36:43

标签: matlab octave

我想获得一个包含目录中所有文件的列表

 d=dir(pwd); # get a struct of all elements (including folders)

现在我想选择d.name的所有元素,其中d.isfolder = 0

 jj=1;
 for ii=1:numel(d)
   if d(ii).isdir==0
     filelist{jj} = d(ii).name;
     jj+1;
   end
 end

这可能没有循环吗? 我认为应该通过一种方法来矢量化这个操作

我正在使用matlab / octave

1 个答案:

答案 0 :(得分:2)

无需使用循环,您可以使用索引

来完成此操作
isDirIdx = [d.isdir];
names = {d.name};
fileNames = names(~isDirIdx);