質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

Q&A

解決済

2回答

1984閲覧

matlabでの作業効率化2

mitan

総合スコア27

MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

0グッド

0クリップ

投稿2016/10/23 07:56

5つのデータがあるとして、それぞれ違う名前をつけたい(a b c d eのように)ときにどのような手順を踏めばいいのでしょうか。

for N=1:5%ファイルの数だけ繰り返す
file_name=['ファイルの場所',num2str(N),'.csv'];
for n=1:5

(ここの名前を変えたい)=csvread(file_name);
end
end

上の括弧の中が変わるようなプログラムってあるのでしょうか。教えていただければ幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

セル配列を使ったらどうでしょうか。

MATLAB

1num_files = 5; 2d = cell(1, num_files); 3for n=1:num_files 4 file_name = ['ファイルの場所', num2str(n), '.csv']; 5 d{n} = csvread(file_name); 6end 7 8D{1} % 最初のデータへのアクセス

どうしても、個別の変数を定義しなければならないのなら、eval() が使えます。

MATLAB

1for n = 1:5 2 file_name = ['ファイルの場所', num2str(n), '.csv']; 3 eval(['D', num2str(n), '=csvread(''', file_name, ''');']); 4end 5 6% D1, ..., D5 が作成される

投稿2016/10/23 19:57

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mitan

2016/10/26 04:36

無事できました!ありがとうございます!
guest

0

できます。

name=['a','b','c','d','e'];
for k=name
file_name = ['ファイル置き場',k,'.csv'];
処理
end

投稿2016/10/23 14:55

WathMorks

総合スコア1582

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mitan

2016/10/23 15:39

ワークスペースに、aやbなどで名前を保存するときは、 for for N=1:5%ファイルの数だけ繰り返す file_name=['ファイルの場所',num2str(N),'.csv']; for n=1:5 name=['a','b','c','d','e']; for k=name k = ['ファイル置き場',num2str(N),'.csv']; 処理 end end そして見たのですが、うまく行きません。 kに入っているaをどう扱ったらいいのでしょうか?
WathMorks

2016/10/24 03:44

eval をつかえばよいでしょう。上の回答にもヒントがありますね。
mitan

2016/10/26 04:36

おかげさまでできました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問