load関数に使うファイル名

30 ビュー (過去 30 日間)
Yoshihiko Kuwabara
Yoshihiko Kuwabara 2019 年 2 月 21 日
コメント済み: Shunichi Kusano 2019 年 2 月 21 日
名前がinv#ddd.matのファイルをロードしたい。dddには3桁の整数がはいります。
load sprintf('inv#%3d.mat',n)
としてもファイルを読み込めません。どうすればよいでしょうか
  1 件のコメント
Yoshihiko Kuwabara
Yoshihiko Kuwabara 2019 年 2 月 21 日
ありがとうございます。この場合,matファイルの1部の変数を読むにはどうしたらよいでしょうか
load (sprintf('inv#%3d.mat',n) x y
としたらエラーが出ます。

サインインしてコメントする。

採用された回答

Shunichi Kusano
Shunichi Kusano 2019 年 2 月 21 日
load(sprintf('inv#%3d.mat',n))
ではどうですか?
  2 件のコメント
Yoshihiko Kuwabara
Yoshihiko Kuwabara 2019 年 2 月 21 日
ファイルは読めました。
ファイルが大きく1部の変数を読みたいのですが、その後に変数を並べてもエラーが出ます。
どうしたらよいでしょうか
load(sprintf('inv#%3d.mat',n)) x y ではだめでした。
Shunichi Kusano
Shunichi Kusano 2019 年 2 月 21 日
load(sprintf('inv#%3d.mat',n), 'x', 'y')
で読めるはずです。ワイルドカードも使うことができます。さらに詳細な使い方を知りたければ下記のページにありますので、ご覧ください。

サインインしてコメントする。

その他の回答 (1 件)

Kenta
Kenta 2019 年 2 月 21 日
%%名前が inv#ddd.mat のファイルを作成
a=1;
b=2;
save inv#123.mat
%% dが3桁の数字の場合
d1=123;
name=sprintf('inv#%d%.mat',d1);
load(name)
%% dddと3つの数字に分かれてる場合
d2=1;
d3=2;
d4=3;
name=sprintf('inv#%d%d%d.mat',d2,d3,d4);
load(name)
dを123みたいに3桁の数字としていれるのか、d1d2d3のように3つの数字の集合として、3桁の数字をつくり、代入するのかは読み取れなかったのですが、いずれにせよこのコードで読めると思うのですが、いかがでしょうか。

カテゴリ

Help Center および File Exchangeワークスペース変数と MAT ファイル についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!