2016-07-06 3 views
0

私はmatlabで読んでいる.ncファイルを持っており、時間変数から情報を取得しています。回答から特定の数字(または単語)を読み取る方法

コードは、私がやりたいことの答えのうちだけ'1850'を取得しているこの

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

のように見えます。

+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を - 1つの空白文字(前のスペースを探してください1850)。
'(\d+)' - 1つ以上の数字('\d+')を探します。括弧は、ここに一致するすべての文字が「トークン」として保存されることを意味します。
'-' - 数字の後に単一の'-'を探します。

ideoneで遊ぶことができます。

関連する問題