我有一个MATLAB结构,我想从每个条目中提取一个文本字段,并将这些条目放入字符串数组中。可以使用以下内容创建示例结构:
allFiles = dir(fullfile('C:UsersusernameDocuments))
上面返回一个结构数组,其中每个文件都是一个带有字段"的条目;name"文件夹"日期";,等如果我调用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
并且这返回适当的字符串数组CCD_ 3。
有没有一个更优雅的解决方案可以将这些条目直接提取到字符串数组中而无需迭代?
是的,您可以收集单元格数组中的所有名称。
allNames = {allFiles.name};
然后将其转换为字符串数组,只需执行
allNames = string({allFiles.name});