for文でループ変数を名前に含む変数を用いて計算したい
16 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
sato
el 7 de Ag. de 2024
Comentada: sato
el 9 de Ag. de 2024
現在for文を用いて連番のついた変数で計算を行い、結果を配列に格納しようと考えています。
具体的には
%繰り返し処理
for i=1:6
%連番のついた変数で計算を行う処理 以下(i)はループ変数の中身
dataA(i)=(data(i)alpha+data(i)beta)/2
dataB(i)=(data(i)gamma+data(i)delta)/2
%行列の1列i行目、2列i行目にdataAi,dataBiを格納する処理
end
上記のようなイメージで、ループ変数をそのまま用いて"data1alpha"~"data6alpha"のように連番のついた変数で計算を行い、
結果を"dataA1"~"dataA6","dataB1"~"dataB6"として2x6行の行列にそれぞれ格納、というような繰り返し処理を行いたいのですが、このような処理は可能でしょうか?
ご教授頂ければ幸いです。
0 comentarios
Respuesta aceptada
Atsushi Ueno
el 7 de Ag. de 2024
eval 関数で望みの処理を実装可能ですが、これは推奨されない方法です。
clear
for i = 1:6
eval("data" + i + "alpha = 0;"); % サンプルデータの準備
eval("data" + i + "beta = 0;"); % サンプルデータの準備
eval("data" + i + "delta = 0;"); % サンプルデータの準備
eval("data" + i + "gamma = 0;"); % サンプルデータの準備
%連番のついた変数で計算を行う処理 以下(i)はループ変数の中身
eval("dataA" + i + " = (data" + i + "alpha + data" + i + "beta) / 2;");
eval("dataB" + i + " = (data" + i + "gamma + data" + i + "delta) / 2;");
%行列の1列i行目、2列i行目にdataAi,dataBiを格納する処理
eval("out(i,:) = [dataA" + i + ", dataB" + i + "];");
end
who
2 comentarios
Atsushi Ueno
el 7 de Ag. de 2024
配列を扱うべきですね。
clear
abdg = zeros(6,4); % サンプルデータの準備
for i = 1:6
out(i,:) = [(abdg(i,1) + abdg(i,2)) / 2, (abdg(i,3) + abdg(i,4)) / 2];
end
whos
Más respuestas (0)
Ver también
Categorías
Más información sobre Operating on Diagonal Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!