Filter löschen
Filter löschen

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

4 Ansichten (letzte 30 Tage)
H.O
H.O am 11 Jul. 2022
Kommentiert: H.O am 12 Jul. 2022
行列Aがあるとします.
A=
12 -11
-11 12
8 -11
A>10 の要素にだけ10を加算し,A<=10 は何も演算しないBを出力したいです.
B=
22 -11
-11 22
8 -11
Indexを使うとA<=10が削除されてしまいます.
どのようにするとよろしいでしょうか.

Akzeptierte Antwort

Atsushi Ueno
Atsushi Ueno am 11 Jul. 2022
> 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 Kommentar
H.O
H.O am 12 Jul. 2022
皆様、ありがとうございました。

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Hernia Baby
Hernia Baby am 11 Jul. 2022
Bearbeitet: Hernia Baby am 11 Jul. 2022
自分は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 am 11 Jul. 2022
これじゃダメですか?
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

Kategorien

Mehr zu Logical finden Sie in Help Center und File Exchange

Produkte


Version

R2021b

Community Treasure Hunt

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

Start Hunting!