Arrays 如何在MATLAB中创建从结构中提取的值的字符串数组?

Arrays 如何在MATLAB中创建从结构中提取的值的字符串数组?,arrays,matlab,struct,Arrays,Matlab,Struct,我有一个MATLAB结构,我想从每个条目中提取一个文本字段,并将这些条目放入字符串数组中。可以使用以下内容创建示例结构: allFiles = dir(fullfile('C:\Users\username\Documents)) 上面返回一个结构数组,其中每个文件都是一个带有字段“name”、“folder”、“date”等的条目。 如果我调用allFiles.name,我会得到每个文件名条目作为一个单独的答案。看起来像 ans = 'exampleFile1.txt' ans =

我有一个MATLAB结构,我想从每个条目中提取一个文本字段,并将这些条目放入字符串数组中。可以使用以下内容创建示例结构:

allFiles = dir(fullfile('C:\Users\username\Documents))
上面返回一个结构数组,其中每个文件都是一个带有字段“name”、“folder”、“date”等的条目。 如果我调用
allFiles.name
,我会得到每个文件名条目作为一个单独的答案。看起来像

ans = 
    'exampleFile1.txt'
ans = 
    'exampleFile2.txt'
或者,我可以调用
[allFiles.name]
,这样只需按如下方式连接字符数组

'exampleFile1.txtexampleFile2.txt'
我找到的唯一解决方案是遍历列表

filesArray = []
for k=1:length(allFiles)
    filesArray = [filesArray string(allFiles(k).name)]
end
这将返回一个正确的字符串数组
[“exampleFile1.txt”“exampleFile2.txt”]


是否有一种更优雅的解决方案可以不经过迭代直接将这些条目提取到字符串数组中?

是的,您可以收集单元格数组中的所有名称

allNames = {allFiles.name};
然后,要将其转换为字符串数组,只需执行以下操作

allNames = string({allFiles.name});