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

56 visualizaciones (últimos 30 días)
kuroshiba
kuroshiba el 20 de Oct. de 2022
Comentada: kuroshiba el 20 de Oct. de 2022
for i = 1: 10
kazu = i;
name[ i ] = kazu;
name[0] 、name[ 1 ]のようにiの値ごとに定義される変数を作りたいのですが、
どのようにすればよいでしょうか。

Respuesta aceptada

Keita Abe
Keita Abe el 20 de Oct. de 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 comentarios
Atsushi Ueno
Atsushi Ueno el 20 de Oct. de 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 el 20 de Oct. de 2022
Thank you gentleman!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre 関数の基礎 en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!