Insert zero in an array when a certain value is exceeded

2 次查看(过去 30 天)
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?

回答(2 个)

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

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

标签

产品


版本

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by