Insert zero in an array when a certain value is exceeded

2 visualizaciones (últimos 30 días)
luca
luca el 14 de Oct. de 2019
Respondida: dpb el 14 de Oct. de 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?

Respuestas (2)

Star Strider
Star Strider el 14 de Oct. de 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 el 14 de Oct. de 2019
U=T;
U(SETT>175)=0;

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by