How to limit a vector to a certain maximum

I have the vector x = [20 19 23 24 17] and I want to somehow create a vector that contains nothing greater than 20. That is, I need a vector that returns y = [20 19 20 20 17] from the original vector. The methods I have tried only return some sort of a boolean type vector that tells me which values are greater than 20. Can anyone help me?

Réponses (1)

Image Analyst
Image Analyst le 29 Nov 2012
xMax = 20;
x = [20 19 23 24 17]
% Clip to xMax
x(x>xMax) = xMax

5 commentaires

Phil
Phil le 29 Nov 2012
Is there a way to create an entirely new vector with the ceiling of 20 instead of just replacing the old one?
newvector = min(x, 20);
Reno Marino
Reno Marino le 13 Fév 2020
u da man
James Pieris
James Pieris le 5 Sep 2020
Hi, do you think you can reference the matlab feature x (x> xmax) from which you derived this technique? I am just interested to know where this defined/listed in matlab documentation. Thanks a lot. it works.
Image Analyst
Image Analyst le 6 Sep 2020
Do a search in the help for "logical indexing".

Connectez-vous pour commenter.

Question posée :

le 29 Nov 2012

Commenté :

le 6 Mai 2021

Community Treasure Hunt

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

Start Hunting!

Translated by