行列 n回代入したい
2 views (last 30 days)
Show older comments
不明点があり質問致します。
式 Ez(n+1) (i,j) = Ez(n) (i,j) のように行列をn回代入したい場合、
どのようなプログラムを作成すればよいでしょうか。
下記のプログラムだとnの変化に意味があらず
どのようにすればよいか、ご指導いただければと思います。
よろしくお願い致します。
nsteps = 10;
Ez = zeros(10,10)
for n = 1:nsteps
for i = 1:10
for j = 1:10
Ez(i,j) = Ez(i,j); %この部分でn回代入できるようにしたいです。
end
end
end
1 Comment
源樹 上林
on 9 Nov 2020
とりあえず言われたとおりn回代入してみましたが、こう言うことではないですよね。ただの確認です。
for i = 1:10
for j = 1:10
for n = 1:nsteps
Ez(i,j) = Ez(i,j);
end
end
end
> Ez(n+1) (i,j) = Ez(n) (i,j)
matlabでこういう表記はできなかったと思います。セル配列なら似たような書き方ができますが、これでしょうか?
Ez{n+1}(i,j) = Ez{n}(i,j)
そもそもどんな出力をイメージされているのか、私の能力ではこの質問内容から読み取ることができませんでした。せめて入力値とそれに対する期待している出力値の例があるとわかりやすいのですが。Codyみたいに。
Answers (1)
Takao
on 13 Nov 2020
Ezの引数i,jに加えて、nを用いる必要があると思います。
つまり、こういうことです。
for n = 1:nsteps
for i = 1:10
for j = 1:10
Ez(i,j,n+1) = Ez(i,j,n);
end
end
end
変数Ez()は本来であれば2次元の行列なのですが、Matlabの制約上、3次元行列を利用する必要があると思います。
なお、ご存知かも知れませんが、matlabは繰り返し計算が苦手です。
変数Ez()の内容によっては、行列計算を行ったほうがスマートなプログラムを書けるかもしれません。
ご検討ください。
0 Comments
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!