Insert zero in an array when a certain value is exceeded

2 Ansichten (letzte 30 Tage)
luca
luca am 14 Okt. 2019
Beantwortet: dpb am 14 Okt. 2019
Hi given arrays
Y= [175 175 175 175 175 175 175 175 175 175 175 175];
SETT=[178 130 120 140 100 160 179 165 157 140 130 180 140];
and
T = [25 60 50 40 30 30 30 35 10 34 23 45 12];
Considering each column, I want to create a new vector U where I put the value of T where the element on the same column of SETT does not exceed the value in Y. And put zeros in the values exceeded
So in this case I want to obtain
U=[0 60 50 40 30 30 0 35 10 34 23 0 12].
May someone helo me with the code?

Antworten (2)

Star Strider
Star Strider am 14 Okt. 2019
The vectors do not have the same numbers of elements.
Correcting for that:
Y= [175 175 175 175 175 175 175 175 175 175 175 175];
SETT=[178 130 120 140 100 160 179 165 157 140 130 180 140];
T = [25 60 50 40 30 30 30 35 10 34 23 45 12];
SETT = SETT(1:numel(Y)); % Equalise Vectors
T = T(1:numel(Y)); % Equalise Vectors
idx = SETT <= Y; % Logical Index Vector
U = T.*idx
producing:
U =
0 60 50 40 30 30 0 35 10 34 23 0

dpb
dpb am 14 Okt. 2019
U=T;
U(SETT>175)=0;

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Tags

Produkte


Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by