1

我想获取目录中所有文件的列表

 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

4

1 回答 1

2

无需使用循环,您可以通过索引来做到这一点

isDirIdx = [d.isdir];
names = {d.name};
fileNames = names(~isDirIdx);
于 2013-02-13T17:42:38.647 回答