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.

 采纳的回答

Any answer please?
Thanks

3 个评论

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.

请先登录,再进行评论。

更多回答(2 个)

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

类别

帮助中心File Exchange 中查找有关 Performance and Memory 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by