MATLAB Answers

luca
0

Insert zero in an array when a certain value is exceeded

luca
さんによって質問されました 2019 年 10 月 14 日
最新アクティビティ dpb
さんによって 回答されました 2019 年 10 月 14 日
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?

  0 件のコメント

サインイン to comment.

タグ

製品


リリース

R2019b

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

  0 件のコメント

サインイン to comment.


dpb
回答者: dpb
2019 年 10 月 14 日

U=T;
U(SETT>175)=0;

  0 件のコメント

サインイン to comment.



Translated by