動かしたい変数が2つある際にどのようにすべきか教えていただきたいです。
6 ビュー (過去 30 日間)
古いコメントを表示
行列bの値を取り出し、aの行列に代入したいと考えています。
この際に、bの行列は(1323000,1)の行列で、bの行列を(1,1),(1000,1),(2000,1)...(1323000,1)と行の値を変化させながら、ここで取り出した値を
aの行列(1323,1)の(1,1),(2,1),(3,1)...(1323,1)のそれぞれに代入したいと考えています。
つまり
a(1,1) = b(1,1)
a(2,1) = b(1000,1)
a(3,1) = b(2000,1)
・
・
・
a(1323,1) = b(1323000,1)
というように代入したいです。
ご回答頂けると幸いです。よろしくお願いします。
0 件のコメント
採用された回答
Atsushi Ueno
2022 年 12 月 9 日
編集済み: Atsushi Ueno
2022 年 12 月 9 日
>動かしたい変数が2つある際にどのようにすべきか
それらの関連性を見極めれば、一方だけ動かして他方を数式で求める事が出来ます
b = zeros(1323000,1); % bの行列は(1323000,1)の行列
for k = 0:1323
a(k+1,1) = b(max(1,k*1000),1); % bの行列(1,1),(1000,1),(2000,1)...(1323000,1)
end % ⇒aの行列(1324,1)の(1,1),(2,1),(3,1)...(1324,1)に代入
1,1000,2000, ... , 1323000は、1323個ではなく1324個あります。また最初(1000-1)だけ間隔が1000ではなく999になります。
また、for文を回さなくても下記の様に同じデータを得る事が出来ます
a2 = b(max(1,0:1000:1323000),1); % これ1行でもOK!
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!