【Matlab】インデックスつき2次元配列のテキストファイルやcsvファイルを読み取る方法

皆さん、お疲れ様です。

今日は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"};

としたらアクセスできます。

このように簡単にアクセスすることができます。

以上です。

誰かの参考になればうれしいです。最後まで読んでいただいてありがとうございました!!!