# Round random vector to nearest number in a fixed vector

3 次查看（过去 30 天）
Kelvin2015-1-19

My question is as follows: I get some random measured values and I want to round them to a scale I have predefined. One solution to this is:
%I have a fixed Cooling Capacity that has the following values:
CoolingCapacity = [2,5,10];
%And a vector with these measured values
CoolingC = [1,2.3,5.3,7.2,10.2,12.2];
if CoolingC < 2.5
tempCooling(i) = 2;
elseif CoolingC >= 2.5 && CoolingC <7.5
tempCooling(i) = 5;
elseif CoolingC >=7.5
tempCooling(i) = 10;
end
It could be solved like this, but is there a easy way to round to nearest number in a fixed vector?
RoundToNearest(CoolingCapacity,CoolingC) And it returns the rounded vector?
Im not sure if my question is clear. Else be free to ask me and ill answer.

### 采纳的回答

Youssef Khmou 2015-1-19
Try logical test :
CoolingC = [1,2.3,5.3,7.2,10.2,12.2];
CoolingC(CoolingC<2.5)=2
CoolingC(CoolingC>=2.5 & CoolingC<7.5 )=5
CoolingC(CoolingC>=7.5 )=10
##### 1 个评论显示 无隐藏 无
Kelvin 2015-1-19
Thats exactly what im looking for. Logical test is a great solution and easy to read.
Thanks :-)

### 类别

Find more on Logical in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by