皆さん、お疲れ様です。
今日はMatlabの話です。
例えば、こんな感じの下の図のようなテキストファイルやcsvファイルがあったときに、
time ch1
0.1 1.000
0.2 1.100
0.3 1.101
0.4 1.205
インデックスをそのままにしておいて読み取る方法っていうのはどうしたらいいか?
について解説しようと思います。
測定データとかシミュレーション結果のデータは時系列のこんなデータであることがよくあります。そういうデータを読み取る際に役立ちます。
解決方法_readtable関数を使う
例を見たらすぐわかるので、サンプルを示します。
例えばsample.txtを読みたいとすると、、、
table = readtable("sample.txt","ReadRowNames",true);
とすれば、OK。
“ReadRowNames”,trueでデータの最初の列を行名として読み込むようにreadtable
に指示します。行名として読み込まれたデータは、テーブルのデータとしては扱われず、行を識別するためのラベルとして使用されます。
sample.txtが以下の内容だとして、
time ch1
0.1 1.000
0.2 1.100
0.3 1.101
0.4 1.205
このsample.txtのch1にアクセスしようとすると
ch1 = table.ch1;
としたらch1の列すべてにアクセスできます。
例えば0.2のch1の値にアクセスしようと思ったら、
value = table{"0.2","ch1"};
としたらアクセスできます。
このように簡単にアクセスすることができます。
以上です。
誰かの参考になればうれしいです。最後まで読んでいただいてありがとうございました!!!