特定の列に0を並べる​方法,1行おきに減算​する方法について

32 views (last 30 days)
Taiga Miyashita
Taiga Miyashita on 7 Jul 2020
Commented: Kenta on 8 Jul 2020
512行46列の行列があるA
512行30列の行列があるBがあります.
このうち,Bの29列目を抜き出しCを作ります.
やりたいことはAの行列の奇数列をBの29列目の行列で減算することです.
その手順として,①や②が必要なのではないかと考えております.
①Cの2列目には0を512行並べたいです.
うまく説明できないのですが自分のやり方(C=zeros(512,2:2))だと1列目も全て0となるような形となってしまいます.
②Aの行列の1行目,3行目,5行目...と1行おきに減算をしたいです.
よろしくお願いいたします.

Accepted Answer

Kenta
Kenta on 7 Jul 2020
A=rand(512,46);
B=rand(512,30);
C=B(:,29);
A2=A-C;
A(:,1:2:end)=A2(:,1:2:end);
②を1行おきではなく、すべてのAに対して実行し、最後にその結果をもともとのAの奇数列のみに代入する形でやってみました。以上でいかがでしょうか。
  4 Comments
Taiga Miyashita
Taiga Miyashita on 8 Jul 2020
Akira Agata様
ご教授いただきましてありがとうございます.
直接結果を求める方が整理されてスマートに見えますね.
求める結果が同じでも様々なやり方があるのだと実感しました.
皆さんのご協力,本当にありがとうございました.
Kenta
Kenta on 8 Jul 2020
Akira Agataさま
ありがとうございます。確かにこちらのほうがスマートですね。
Miyashitaさま
解決したようでよかったです。

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!