名前が数字に関連付けられたtxtファイルをループでインポートしたい
16 views (last 30 days)
Show older comments
1.txt~100.txt のtxtファイルが有ります。
txtファイルの中には4*1000のデータが入っており
M=readmatrix('filename.txt')
で、Mが4*1000 double の形で出力出来ることは確認できているのですが
id = 1
matlix=readmatrix('filename.txt')
の様にすると
次を使用中のエラー: readmatrix
すべてのパラメーターは関連付けられている値をもっていなければなりません。
のエラーが出ます。
最終的には
for id = 1 : 100
matlix=readmatrix('filename.txt')
Mat{id}=matlix
end
の様にして4*1000*100 のひとつのマトリクスを得たいです。
https://jp.mathworks.com/matlabcentral/answers/557602-csv-mat?s_tid=srchtitle などのヘルプを参考にしてはいるのですが上手くいきません
ご存知の方いらっしゃれば回答頂けると幸いです。
0 Comments
Accepted Answer
Atsushi Ueno
on 7 Jun 2023
Mat{id}=matlix
中括弧を使ったアクセスは、セル配列の値に対するアクセスです。
4*1000*100 のひとつのマトリクスを得る場合、小括弧()でアクセスします。
f_name_base = [pwd filesep]; % 作業フォルダのパスを得る
Mat = zeros(4,1000,100); % 4*1000*100 のひとつのマトリクスに結果を格納する
for id = 1:100
str_id = num2str(id, '%i');
f_path = strcat(f_name_base, str_id, '.txt');
writematrix(ones(4,1000),f_path); % テスト用の 1.txt~100.txt を作成。本来は不要
matlix = readmatrix(f_path);
Mat(:,:,id) = matlix;
end
sum(Mat,'all') % 4*1000*100 全要素の値を1にしたので、合計すると400000になる
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!