2012-07-20 66 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

相關問題