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?

Answers (1)

xMax = 20;
x = [20 19 23 24 17]
% Clip to xMax
x(x>xMax) = xMax

5 Comments

Is there a way to create an entirely new vector with the ceiling of 20 instead of just replacing the old one?
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.
Do a search in the help for "logical indexing".

Sign in to comment.

Asked:

on 29 Nov 2012

Commented:

on 6 May 2021

Community Treasure Hunt

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

Start Hunting!