从结构中提取向量

Extracting a vector from a struct

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

执行此操作的方法如下:

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

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

...[dirData.isdir]...

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

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

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