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

16 Ansichten (letzte 30 Tage)
巧 平山
巧 平山 am 7 Jun. 2023
Kommentiert: 巧 平山 am 8 Jun. 2023
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 などのヘルプを参考にしてはいるのですが上手くいきません
ご存知の方いらっしゃれば回答頂けると幸いです。

Akzeptierte Antwort

Atsushi Ueno
Atsushi Ueno am 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になる
ans = 400000
  1 Kommentar
巧 平山
巧 平山 am 8 Jun. 2023
上手くできました!有難うございました!!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu 環境と設定 finden Sie in Help Center und File Exchange

Produkte


Version

R2023a

Community Treasure Hunt

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

Start Hunting!