From 2 given values find the range from a vector

for example if i have a vector D=[110 140 160 225 280 315 355 400 450 500] and values Dmin=112 and Dmax=356 (always find the value rounded to the bigger number of the vector). i Want to find Range=[140 160 225 280 315 355 400]
Thank you

답변 (3개)

Azzi Abdelmalek
Azzi Abdelmalek 2016년 8월 8일
편집: Azzi Abdelmalek 2016년 8월 8일

0 개 추천

Edit
D=[110 140 160 225 280 315 355 400 450 500]
Dmin=112
Dmax=356
ii1=find(D>=Dmin,1)
ii2=find(D>=Dmax,1)
out=D(ii1:ii2)

댓글 수: 1

Note that this method will return an empty vector when Dmax is >= max(D). This might be undesired behavior.

댓글을 달려면 로그인하십시오.

Stephen23
Stephen23 2016년 8월 8일
편집: Stephen23 2016년 8월 8일

0 개 추천

D = [110,140,160,225,280,315,355,400,450,500]
Dmin = 112;
Dmax = 356;
idx = Dmin<=D & [true,D(1:end-1)<=Dmax];
out = D(idx);
and the output:
>> out
out =
140 160 225 280 315 355 400
Alexandros Samp
Alexandros Samp 2016년 8월 8일

0 개 추천

This is my problem that Dmax might be out of bound and it returns an empty matrix.

댓글 수: 3

Stephen23
Stephen23 2016년 8월 8일
편집: Stephen23 2016년 8월 8일
My answer works correctly when Dmax is out of range. Did you try it?
Dmin = 109;
Dmax = 501; % out of range
idx = Dmin<=D & [true,D(1:end-1)<=Dmax];
out = D(idx)
and the output:
>> out
out =
110 140 160 225 280 315 355 400 450 500
If Dmax=700 and Dmin=340 i want to take the Range=[355 400 450 500], from the Dmin value till the end of the vector
Stephen23
Stephen23 2016년 8월 8일
편집: Stephen23 2016년 8월 9일
@Alexandros Samp: Have you actually tried my answer yet? My answer does exactly what you are requesting. Here, I can show you for the third time that it gives you the correct output:
D = [110,140,160,225,280,315,355,400,450,500]
Dmin = 340;
Dmax = 700;
idx = Dmin<=D & [true,D(1:end-1)<=Dmax];
out = D(idx)
and the output:
>> out
out =
355 400 450 500

댓글을 달려면 로그인하십시오.

카테고리

태그

질문:

2016년 8월 8일

편집:

2016년 8월 9일

Community Treasure Hunt

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

Start Hunting!

Translated by