条件を満たさない要素を保持して演算する

行列Aがあるとします.
A=
12 -11
-11 12
8 -11
A>10 の要素にだけ10を加算し,A<=10 は何も演算しないBを出力したいです.
B=
22 -11
-11 22
8 -11
Indexを使うとA<=10が削除されてしまいます.
どのようにするとよろしいでしょうか.

 採用された回答

Atsushi Ueno
Atsushi Ueno 2022 年 7 月 11 日

0 投票

> Indexを使うとA<=10が削除されてしまいます
⇒こういう事ですよね。
A = [12 -11; -11 12; 8 -11]
A = 3×2
12 -11 -11 12 8 -11
idx = A > 10
idx = 3×2 logical array
1 0 0 1 0 0
B = A(idx) + 10
B = 2×1
22 22
下記のように使えば、条件を満たさない要素は保持されます。
B = A;
B(idx) = B(idx) + 10
B = 3×2
22 -11 -11 22 8 -11

1 件のコメント

H.O
H.O 2022 年 7 月 12 日
皆様、ありがとうございました。

サインインしてコメントする。

その他の回答 (2 件)

Hernia Baby
Hernia Baby 2022 年 7 月 11 日
編集済み: Hernia Baby 2022 年 7 月 11 日

1 投票

自分はindexに10をかける方法で提案しますね。
A = [12 -11; -11 12; 8 -11]
A = 3×2
12 -11 -11 12 8 -11
idx = A > 10;
B = A + idx*10
B = 3×2
22 -11 -11 22 8 -11
Hiro Yoshino
Hiro Yoshino 2022 年 7 月 11 日

0 投票

これじゃダメですか?
A = [12 -11; -11 12; 8 -11]
A = 3×2
12 -11 -11 12 8 -11
idx = A>10
idx = 3×2 logical array
1 0 0 1 0 0
A(idx) = A(idx) + 10
A = 3×2
22 -11 -11 22 8 -11

カテゴリ

ヘルプ センター および File ExchangeMatrix Indexing についてさらに検索

製品

リリース

R2021b

質問済み:

H.O
2022 年 7 月 11 日

コメント済み:

H.O
2022 年 7 月 12 日

Community Treasure Hunt

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

Start Hunting!