2016-07-06 60 views
0

我有一个.nc文件我在matlab中读取,并将时间变量中的信息取出。如何从答案中读取特定的数字(或单词)

的代码看起来像这样

>> ncreadatt(model_list{3},'T','units') 
ans = 
'months since 1850-01-01' 

我想要做的就是刚刚'1850'出来的答案。

+0

如果格式一致,那么你可以'ans(12:16)'获得第12到第16个值,这将是今年。您可以使用'str2num(ans(12:16))'将其转换为数字 – kkawabat

回答

2

Regular expression是一个非常强大的工具来解析和操纵字符串。
Matlab具有regexp命令:

line = 'months since 1850-01-01'; 
res = regexp(line, '\s(\d+)-', 'tokens', 'once'); 
year = str2double(res{1}) 

而结果是:

year = 
1850 

正则表达式使用'\s(\d+)-'手段:

\s - 查找单个空格字符(前的空格1850)。
'(\d+)' - 查找一个或多个数字('\d+'),圆括号表示所有匹配的字符将保存为“令牌”。
'-' - 在数字后面寻找单个'-'

你可以在ideone上玩。

相关问题