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

58 Ansichten (letzte 30 Tage)
kuroshiba
kuroshiba am 20 Okt. 2022
Kommentiert: kuroshiba am 20 Okt. 2022
for i = 1: 10
kazu = i;
name[ i ] = kazu;
name[0] 、name[ 1 ]のようにiの値ごとに定義される変数を作りたいのですが、
どのようにすればよいでしょうか。

Akzeptierte Antwort

Keita Abe
Keita Abe am 20 Okt. 2022
配列で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 Kommentare
Atsushi Ueno
Atsushi Ueno am 20 Okt. 2022
推奨されるのは 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 am 20 Okt. 2022
Thank you gentleman!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu 関数の基礎 finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!