Mapping values of two different-length vectors to index-vector

Hello,
I didn't know how to put my problem into a good google search... I could not find anything appropriate.
What I want to do is I have two vectors
a = [0 .07 .14 .21 .28 .35 .42 .5]
b = [0 .1 .2 .3 .4 .5]
I want to compare a and b in a way that I get an Index vector which would say that a(1) is between b(1) and b(2), i.e. this index would return i(1) = 1 because a(1) is between b(1) and b(2). For the next element in a it would return i(2) = 1, because a(2) is between b(1) and b(2). For a(3) it would return i(3) = 2, because a(3) is between b(2) and b(3), etc. How can i achieve this? Thank you in advance!

1 Comment

Ohh sorry your question is different, I did not read the second part.
But the logic is not clear for me..
i(1) = 1 because a(1) is between b(1) and b(2)
i(2) = 1, because a(2) is between b(1) and b(2)
i(3) = 2, because a(3) is between b(2) and b(3)...??.Here i(3)=2 and here b(2) and b(3)....in privious case b(1) abd b(2)

Sign in to comment.

 Accepted Answer

Stephen23
Stephen23 on 26 Nov 2018
Edited: Stephen23 on 26 Nov 2018
>> [~,X] = histc(a,b)
X =
1 1 2 3 3 4 5 6

More Answers (0)

Categories

Find more on Data Import and Analysis in Help Center and File Exchange

Asked:

on 26 Nov 2018

Commented:

on 26 Nov 2018

Community Treasure Hunt

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

Start Hunting!