如何使用matlab读取字符串中的数字

时间:2014-04-01 13:32:34

标签: string matlab

我有一个非标准格式的文件,我想读取它的特定部分,包括实数或整数。

str1='N.ELBETI.150.L10';

str2='KARDIA_3.150.L20';

str3='axeloos1.15.75.L20';

str4='florina2.6.3.L2.1';

我只想将数字存储在每个字符串的中心部分和末尾,即:

150和10来自str1,150和20来自str2,15.75和20来自str3,6.3和2.1来自str4 我尝试了几种方法,但我做不到。你能救我吗?

2 个答案:

答案 0 :(得分:2)

已发布的好答案的替代方案。将以下函数应用于每个字符串。

function [num1, num2] = extract_from_string(s)

num1 = str2num(s(find(s == '.',1,'first')+1:find(s == 'L',1,'first')-2));
num2 = str2num(s(find(s == 'L',1,'first')+1:end));

end

答案 1 :(得分:1)

像这样使用regexp

获取第一个数字:

str1(regexp(str1,'\.\d')+1:regexp(str1,'L\d')-2)

获取最后一个号码:

str1(regexp(str1,'L\d')+1:end)

这些命令也适用于其他字符串