How to find the nth is the higher than and closest to 0.3

1 次查看(过去 30 天)
A=[5 56 6.1 0.29 0.32 15 ]
I want to find a value which not only be the closest to 0.3,but also higher than 0.3
As we know ,0.32 should be the answer,and 0.32 is the 5th number in A vector,how do i write a code to let Matlab tell the 5th is higher and closest number to 0.3 ?

采纳的回答

Star Strider
Star Strider 2019-10-2
One approach:
A=[5 56 6.1 0.29 0.32 15 ];
Av = A(A > 0.3);
[~,idx] = min(abs(Av-0.3));
Out = Av(idx)
Idx = find(A == Out)
producing:
Out =
0.32
Idx =
5
This first selects the elements of ‘A’ that are larger than 0.3, then finds the closest value to 0.3. It then uses that value to find the position in ‘A’. (I also tested this on some random ‘A’ vectors.)

更多回答(1 个)

Shubham Gupta
Shubham Gupta 2019-10-2
One of the several ways:
A=[5 56 6.1 0.29 0.32 15 ];
[vec,ind] = sort(A);
id = find(vec>0.3,1);
rqd_value = vec(id) % Required Value
rqd_index = ind(id) % Required Index

类别

Help CenterFile Exchange 中查找有关 Startup and Shutdown 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by