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

Posted

技术标签:

【中文标题】如何创建从 MATLAB 中的结构中提取的值的字符串数组?【英文标题】:How can I create a string array of values pulled from a struct in MATLAB? 【发布时间】:2021-02-18 12:10:18 【问题描述】:

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

allFiles = dir(fullfile('C:\Users\username\Documents))

上面返回一个结构数组,其中每个文件都是一个条目,其中包含“名称”、“文件夹”、“日期”等字段。 如果我打电话给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"]

有没有更优雅的解决方案可以将这些条目直接提取到字符串数组中而无需迭代?

【问题讨论】:

【参考方案1】:

是的,您可以在一个元胞数组中收集所有名称。

allNames = allFiles.name;

然后把它变成一个字符串数组就行了

allNames = string(allFiles.name);

【讨论】:

以上是关于如何创建从 MATLAB 中的结构中提取的值的字符串数组?的主要内容,如果未能解决你的问题,请参考以下文章

MatLab数据结构

如何在 Java 中提取 MFCC 特征

Python:从数据框字符串列中提取维度数据并为每个列创建具有值的列

如何从 MATLAB 函数中的工作区获取 Simulink 结构的值?

SQL(雅典娜)中的取消嵌套:如何将结构数组转换为从结构中提取的值数组?

matlab如何提取字符串中的数字?