名前が数字に関連付け​られたtxtファイル​をループでインポート​したい

조회 수: 16 (최근 30일)
巧 平山
巧 平山 2023년 6월 7일
댓글: 巧 平山 2023년 6월 8일
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 などのヘルプを参考にしてはいるのですが上手くいきません
ご存知の方いらっしゃれば回答頂けると幸いです。

채택된 답변

Atsushi Ueno
Atsushi Ueno 2023년 6월 7일
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になる
ans = 400000
  댓글 수: 1
巧 平山
巧 平山 2023년 6월 8일
上手くできました!有難うございました!!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 環境と設定에 대해 자세히 알아보기

제품


릴리스

R2023a

Community Treasure Hunt

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

Start Hunting!