配列の1つの要素だけをスカラーとして変数に直接代入したい
14 views (last 30 days)
Show older comments
代入式の右辺の配列の1つの要素だけを指定して直接左辺の変数に代入するにはどうすればできるでしょうか?
たとえば次のようなコードを書いた場合,一旦行列の変数(B)を介しているのでそれを省いて直接A(i)=(rand(3)^(i)*rand(3,1),1)のような形で書きたいです。
for i = 1:5
B = rand(3)^(i)*rand(3,1);
A(i) = B(1);
end
2 Comments
Atsushi Ueno
on 22 Oct 2022
回答できないですね。質問の求める方法は無く、質問のコード例が必要最小限の書き方だと思います。
下記方法が考えられますが最後に余分なデータが残り、結局 A(1:5)とアクセスする必要があります。
for i = 1:5
A(i:i+2) = rand(3)^(i)*rand(3,1)
end
メモリには困らない時代なので、計算結果を広げて必要箇所を拾っていく(不要部分を捨てていく)形が良いと思います。
arrayfun(@(i) rand(3)^(i)*rand(3,1), 1:5, 'uni', false)
cell2mat(ans)
ans(1,:)
Answers (0)
See Also
Categories
Find more on ループと条件付きステートメント 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!