2012-07-20 62 views
0

如果查找的位置,并确定具有一个阵列

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

请澄清矩阵之间的关系?目前尚不清楚你想要什么。 – tmpearce 2012-07-20 01:39:15

+0

a1是数组a中包含的值,第一个:找出元素a1在a中出现的位置;其次,找到在b中找到的值的相应位置。 – user1532668 2012-07-20 01:41:28

+0

这并没有真正的帮助... – tmpearce 2012-07-20 02:27:58

回答

2

作为一个班轮:

arrayfun(@(x) b(find(a == x, 1, 'first')), a1) 
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]

希望这有助于。

+0

有没有'for'循环可以做? – chaohuang 2012-07-20 02:47:02

+0

而不是'发现'所有的事件,并取第一个值(在第一个循环中),你可以使用'find(a == a1(i),1,'first')' – tmpearce 2012-07-20 02:52:48

+0

+1来找出问题。看到你的答案,我终于明白了! – tmpearce 2012-07-20 02:57:14

相关问题