从结构中提取矢量

时间:2016-12-20 20:36:22

标签: matlab vector matlab-struct

使用dir(directoryName)后我得到了一个结构。我想获得一个包含该文件夹中所有文件名的向量。

  • 如何从结构中提取名称向量?
  • 有没有更好的方法来获取带有目录中所有文件名称的向量?

1 个答案:

答案 0 :(得分:2)

以下是您可以这样做的方法:

dirData = dir(directoryName);
fileNames = {dirData(~[dirData.isdir]).name};

这可以通过使用comma-separated lists来实现。当您有一个结构数组并使用点运算符索引字段时,您将获得一个以逗号分隔的值列表,然后您可以将这些值传递给函数或使用方括号或大括号进行收集。这段代码:

...[dirData.isdir]...

从数组中的每个结构收集isdir字段,使用方括号将值放在向量中,以便可以将其用作逻辑索引。然后这段代码:

... {dirData(...).name};

从数组中的每个结构收集name字段,将字符串放在单元格数组中。