0
私はmatlabで読んでいる.ncファイルを持っており、時間変数から情報を取得しています。回答から特定の数字(または単語)を読み取る方法
コードは、私がやりたいことの答えのうちだけ'1850'
を取得しているこの
>> ncreadatt(model_list{3},'T','units')
ans =
'months since 1850-01-01'
のように見えます。
私はmatlabで読んでいる.ncファイルを持っており、時間変数から情報を取得しています。回答から特定の数字(または単語)を読み取る方法
コードは、私がやりたいことの答えのうちだけ'1850'
を取得しているこの
>> ncreadatt(model_list{3},'T','units')
ans =
'months since 1850-01-01'
のように見えます。
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で遊ぶことができます。
フォーマットが一貫していれば、 'ans(12:16)'を実行して12番目から16番目の値を年とすることができます。 'str2num(ans(12:16))'を使って数値に変換することができます。 – kkawabat