for文で連続する数字から変数を定義したい

55 ビュー (過去 30 日間)
kuroshiba
kuroshiba 2022 年 10 月 20 日
コメント済み: kuroshiba 2022 年 10 月 20 日
for i = 1: 10
kazu = i;
name[ i ] = kazu;
name[0] 、name[ 1 ]のようにiの値ごとに定義される変数を作りたいのですが、
どのようにすればよいでしょうか。

採用された回答

Keita Abe
Keita Abe 2022 年 10 月 20 日
配列でname(i)を定義するのではなく変数名自体に連番を振るにはevalを使えばできるみたいです。(推奨されないそうですが)
https://jp.mathworks.com/matlabcentral/answers/1729850-for?s_tid=answers_rc1-3_p3_MLT
for i = 1:10
kazu = i;
eval(sprintf('name%d=kazu;',i));
end
whos
Name Size Bytes Class Attributes cmdout 1x33 66 char i 1x1 8 double kazu 1x1 8 double name1 1x1 8 double name10 1x1 8 double name2 1x1 8 double name3 1x1 8 double name4 1x1 8 double name5 1x1 8 double name6 1x1 8 double name7 1x1 8 double name8 1x1 8 double name9 1x1 8 double
  2 件のコメント
Atsushi Ueno
Atsushi Ueno 2022 年 10 月 20 日
推奨されるのは cell 配列です。
for i = 1:10
kazu = zeros(randi(5),randi(5)); % サイズがバラバラな行列を作成
name{i} = kazu;
end
name % 1行10列のcell配列。変数を10個作るのと同じ。型がバラバラでも各々格納してくれる
name = 1×10 cell array
{3×5 double} {4×1 double} {5×2 double} {3×1 double} {2×2 double} {5×1 double} {2×5 double} {4×2 double} {[0]} {3×1 double}
name{5}
ans = 2×2
0 0 0 0
kuroshiba
kuroshiba 2022 年 10 月 20 日
Thank you gentleman!

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeWhos についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!