MATLAB:从字母数字表中提取数值数据并保存为double

时间:2017-11-30 16:42:03

标签: matlab

我创建了一个数据文件名称列表,例如abc123.xml,abc456.xml,来自

list = dir('folder/*.xml').

Matlab以包含5个字段的10x1结构开始,其中第一个是名称。我用struct2table提取了所需的数据,所以我现在得到了一个10x1的表。我只需要数值为10x1 double。如何摆脱字母数字并更改数据类型?

我尝试了regexp(未定义函数' regexp'用于类型'表'的输入参数)和strfind(无法从表转换为double)。无法想出其他任何东西,因为我对Matlab很新。

1 个答案:

答案 0 :(得分:1)

您可以提取name字段并将其放在cell array中,使用regexp捕获在每个名称中找到的第一个数字字符串,然后使用str2double将它们转换为数值:

strs = regexp({list.name}, '(\d+)', 'once', 'tokens');
nums = str2double([strs{:}]);