解析一行来获取数字

时间:2014-10-30 13:19:55

标签: matlab parsing

我的行看起来像这样:

tmp='bla bio = 773 node = 6 bib=21 data=118 pewp= 120'

我需要获得第一个和最后一个数字 - 773,120 我试过了

sscanf(tmp,' %*s %*s %*s %f  %*s %*s %*s %*s %*s %*s %f')

但没有任何运气.. 数字6 21 118是随机的,其余的是有效的

2 个答案:

答案 0 :(得分:1)

以下方法可能有所帮助:

%删除全部' ='
tmp(strfind(tmp,'=')) = [];

%设置键和键;指数  
key = 'bio';
 index = strfind(tmp,key);      

%提取值
value = sscanf(str(index(1)+length(key):end), '%g',1);

%要获得pewp的值,请设置key =' pewp'并重复上述步骤

答案 1 :(得分:1)

我找到了一个简单的方法

temp=sscanf(tmp,'bla bio = %f node = %f bib=%f data=%f pewp= %f')
tmp(1)=temp(1)
tmp(2)=temp(5)