MATLABにインポートするcsvデータファイルがいっぱいのフォルダがあります。インポート関数は、それぞれ同じです。その名前はパターンに従います(例: 'a0-b0.csv'、 'a0-b5.csv'、 'a0-b10.csv'、 'a0-b15.csv' ... 'a2-b0'など多くのcsvファイルをMATLABのテーブルにインポートする方法
すべてをインポートしたいこれらのファイルはすぐに使用できます。私はそれらを含むデータに対応する分かりやすい名前のテーブルとしてそれらをインポートしたいと思います。
filepath = 'file/path/'
for (a = [0, 2])
for (b = [0:5:50])
filename = strcat(filepath, 'a', num2str(a), '-b', num2str(b), '.csv')
varname = strcat('a', num2str(a), '_b', num2str(b))
varname = importfile(filename, startrow, endrow)
end
end
のようなものをやって
は、私には概念に意味を成していました。
「varname」自体は変数であり、それに含まれる文字列ではないため、これは私がしたいことをしません。私はeval()
を示唆している同様の状況に対して多くの回答を見てきましたが、同時にそれに対して徹底的に提唱しました。
eval()
には、実装が面倒な副作用があります。誰もがそれを強く嫌うと、それを実装しようと努力する価値があるのかどうか疑問に思う。
私はこれを行う方法は他にありません。私はどのように適切な/関連する名前になる配列(推奨代替)を使用して表示されません。
ファイル名に対応する名前を持つMATLABのテーブルに多くのcsvファイルを自動的にインポートする方法についての提案はありますか?
(重複について:私はまだここでの主な課題となっている変数名を対応の自動作成に取り組む質問、見つかっていない)@transversality条件は彼らのコメントで書いたように、あなたは、
テーブルを格納するために 'struct'を使用します。 'eval'を使わないでください。これまであなたがそれを使用しなければならないと感じたら、あなたがしていることを再考する時間。 –
もっと広く言えば、[動的フィールドの参照](http://blogs.mathworks.com/loren/2005/12/13/use-dynamic-field-references/) – excaza