找到位置并确定具有相同位置的另一个阵列的相应值

时间:2012-07-20 01:33:24

标签: matlab search matrix find

如果

a=[5 8 1 2 6 7 1 4 2 3 7 8];
b=[7 6 3 1 5 4 2 0 1 8 9 4];

然后

a1=[1 7 3] 

对应矩阵,d应为[3 4 8]

d是相应a值的确切位置。我如何找到这个值?

2 个答案:

答案 0 :(得分:2)

试试这个:

c = []
for i = 1:length(a1)
    index = find(a == a1(i));
    c = [c, index(1)]
end

d = []
for i = 1:length(c)
    d = [d, b(c(i))]
end

输出为[3 4 8]

希望这会有所帮助。

答案 1 :(得分:2)

作为一个单行:

arrayfun(@(x) b(find(a == x, 1, 'first')), a1)