Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

Hot to find the matched values between two vectors and also related indeces

Asked by Juster on 17 Jun 2012

Good evening to all,

I have two vectors, for example:

a = [0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27]; b= [0 8 17 25];

what I would find are the indices related the vector 'a' with the same value of 'b'...like for example in this case 1 9 18 26.

Thanks in advance.

0 Comments

Juster

Products

No products are associated with this question.

3 Answers

Answer by Juster on 18 Jun 2012
Accepted answer

Any answer please?

Thanks

3 Comments

per isakson on 18 Jun 2012

The proposed solution, ismember, works with whole numbers.

With floating point numbers rounding comes in and it's a different problem.

Did you search the File Exchange?

Jan Simon on 18 Jun 2012

Look for Bruno's "ismemberf" in the FEX.

Juster on 20 Jun 2012

Hello Jam, I solved thanks to the 'ismemberf' function.

Best regards.

Juster
Answer by Andrei Bobrov on 17 Jun 2012
[idx,loc] = ismember(b,a);
out = loc(idx);

ADD after Knot's answer

out = find(any(abs(bsxfun(@minus,a,b.')) < eps(100)));

1 Comment

Juster on 18 Jun 2012

Hi Andrei I send you a personal message.

Thanks

Andrei Bobrov
Answer by Juster on 17 Jun 2012

I tried it but with microsecond order it did'n work.

In fact if you try with :

a = [0:10e-6:280e-6]; b = [0 80e-6 170e-6 250e-6]; [idx,loc] = ismember(b,a); out = loc(idx);

I don't got the right values of indices.

0 Comments

Juster

Contact us