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

27 visualizzazioni (ultimi 30 giorni)
Taiga Miyashita
Taiga Miyashita il 7 Lug 2020
Commentato: Kenta il 8 Lug 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行おきに減算をしたいです.
よろしくお願いいたします.

Risposta accettata

Kenta
Kenta il 7 Lug 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 Commenti
Taiga Miyashita
Taiga Miyashita il 8 Lug 2020
Akira Agata様
ご教授いただきましてありがとうございます.
直接結果を求める方が整理されてスマートに見えますね.
求める結果が同じでも様々なやり方があるのだと実感しました.
皆さんのご協力,本当にありがとうございました.
Kenta
Kenta il 8 Lug 2020
Akira Agataさま
ありがとうございます。確かにこちらのほうがスマートですね。
Miyashitaさま
解決したようでよかったです。

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Logical in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!