ループ内でテーブルを番号つきで管理する方法

4 次查看(过去 30 天)
Kog
Kog 2019-6-14
评论: Kog 2019-6-17
フォルダ内のdatファイルをすべて読み込み、fie1,fie2...というtableで管理したいのですが
知恵をいただけないでしょうか。
datFileList = dir(['*.dat']);
datNum = size(datFileList);
kk = 1;
for kk = 1 : datNum(1)
disp(kk)
datFileName = char(datFileList(kk).name); % char型に変換
HeaderlinesIn=6;
tmp = importdata(datFileName,'\t',HeaderlinesIn); %headerと数値を分けてimport
headname=strrep(tmp.colheaders,'%','percent'); %headerの名前の調整、%は変数名として使えないので
vcell = genvarname(headname); %変数名がかぶらないように処理
fie{kk}= array2table(tmp.data,'VariableNames',vcell); %変数と数値を合わせてtable化
end

采纳的回答

Kazuya
Kazuya 2019-6-15
dat ファイル1つ1つの読み込み結果を、 fie1, fie2, ... という table 変数にするということですね?それであれば eval 関数でできそうですが、下記ページのよるとあまりお勧めでは無いようですのでご注意を。。
fie{kk}= array2table(tmp.data,'VariableNames',vcell); %変数と数値を合わせてtable化
のところを
tmp2 = array2table(tmp.data,'VariableNames',vcell); %変数と数値を合わせてtable化
eval(['fie', int2str(kk),' = tmp2;']);
に変更すればOKなはず。
  1 个评论
Kog
Kog 2019-6-17
お返事遅くなり申し訳ありません。
eval関数ですが、ちらっと当該ページのヘルプを読んだのですが、何が悪いのかわからなかったです…。
当面自分のほうこちらで問題ありませんので、使われていただくと思います!
ありがとうございました。

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Whos 的更多信息

标签

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!