【问题标题】:Matlab: select elements of vector conditionallyMatlab:有条件地选择向量的元素
【发布时间】:2013-02-13 17:36:43
【问题描述】:

我想得到一个目录中所有文件的列表

 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

【问题讨论】:

    标签: matlab octave


    【解决方案1】:

    不需要使用循环,你可以通过索引来做到这一点

    isDirIdx = [d.isdir];
    names = {d.name};
    fileNames = names(~isDirIdx);
    

    【讨论】:

    • 我需要文件列表而不是文件夹 isFileIdx = [d.isdir]==0;名称 = {d.name};文件名 = 名称(isFileIdx);
    猜你喜欢
    • 1970-01-01
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    • 1970-01-01
    • 1970-01-01
    • 2014-10-15
    相关资源
    最近更新 更多