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

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.

 Akzeptierte Antwort

Juster
Juster am 18 Jun. 2012
Any answer please?
Thanks

3 Kommentare

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?
Look for Bruno's "ismemberf" in the FEX.
Hello Jam, I solved thanks to the 'ismemberf' function.
Best regards.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

[idx,loc] = ismember(b,a);
out = loc(idx);
ADD after Knot's answer
out = find(any(abs(bsxfun(@minus,a,b.')) < eps(100)));
Juster
Juster am 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.

Kategorien

Mehr zu Performance and Memory finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 17 Jun. 2012

Community Treasure Hunt

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

Start Hunting!

Translated by