How can i transfer a specific number in matrix to another number along the solution matrix??

2 Ansichten (letzte 30 Tage)
Hello. I'n very novice in MATLAB, so please undersatand me..!
My queation is as title.
Let me an example.
x = [1,0,0,1] % binary
A = [-27, -10, -11, -25]
In this example, first and fourth number of x is 1.
Along x, first and fourth number of A is -27, -25.
And I want to change the bigger number of this two number to zero.
Namely, -27 < -25, so -25 transfer to 0.
The result is
A = [-27, -10, -11, 0]
if
x = [1,1,0,0] % binary
A = [-27, -10, -11, -25]
the result is
A = [-27, 0, -11, -25]
How can I code this logic??
Many masters in the world, please Help me.

Akzeptierte Antwort

Simon Chan
Simon Chan am 13 Aug. 2021
Try this:
[value,~]=max(A(logical(x)));
A(A==value)=0;

Weitere Antworten (2)

Walter Roberson
Walter Roberson am 13 Aug. 2021
x = [1,0,0,1] % binary
x = 1×4
1 0 0 1
A = [-27, -10, -11, -25]
A = 1×4
-27 -10 -11 -25
xidx = find(x==1);
[~, maxidx] = max(A(xidx));
A(xidx(maxidx)) = 0;
A
A = 1×4
-27 -10 -11 0

Chunru
Chunru am 13 Aug. 2021
x = [1,1,0,0]; % binary
A = [-27, -10, -11, -25];
idx = find(x);
[~, i0] = max(A(idx));
A(idx(i0)) = 0;
A
A = 1×4
-27 0 -11 -25
% A = [-27, 0, -11, -25]

Kategorien

Mehr zu Programming finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by