-1

我遇到了以下几行MATLAB

m = dir(fullfile(dataset,'*.png'));
m = {m(~[m.isdir]).name};

我知道第一行是试图.png从目录中获取文件。但是,第二行试图执行什么?isdir似乎确定输入是目录。这就是我对那部分的新内容。但是,这条线试图表现什么?

谢谢。

4

1 回答 1

3

第二行是获取所有不是目录的文件,然后获取各自的名称并将它们存储到一个单元格数组中

  • m.isdir指示它是否是文件夹
    • 如果是则返回 1,否则返回 0。
  • ~[m.isdir]将指示从哪个返回的值isdir是 0。
  • m(~[m.isdir])抓取 m 中由上面完成的逻辑索引确定的所有对象
  • m(~[m.isdir]).name得到所有人的名字
  • {m(~[m.isdir]).name}将它们全部存储在元胞数组中

希望这一步一步的演练有所帮助。

虽然我不确定为什么第二行是必要的,因为fullfile(dataset,'*.png')应该只返回以 结尾的路径.png,而不是文件夹,但我想最好检查一下。

于 2013-08-07T16:50:16.347 回答