2015-10-06 188 views
0

我是新的,我真的需要幫助。這裏是我的問題,我有同樣大小的2個不同的載體,如:Matlab,矢量比較和如果循環

A= [1 2 3 4 2] 

B= [0.1 0.2 0.3 0.4 0.2] 

現在..我想這樣做是爲了創建第三個向量d(前兩個同樣大小的)充滿了B的一些特定元素。 特別是我想創建一個「if循環」,在這裏我檢查A的「i」元素,如果它在給定範圍內,我會選擇「k」元素B的,並把它放在D.

是我能夠做到的是建立與向量的只是一個週期,和它的作品..

D=zeros(size(A)) 
for i=1:length(A) 
    if A(i)>= 2 & A(i)<= 4 
     D(i)=A(i) 
    else 
     D(i)=0 
    end 
end 

現在我不知道如何在這個循環中實現B向量。我想檢查A上的值,然後不選擇「我」,但「K」,例如:

if A(i)>= 2 & A(i)<= 4 
    "pick B(k) (where i and k are both the second elements of A and B) and put it in D" 

有人可以幫忙嗎?

+0

'「其中i和k都是A和B的第二個元素」對我來說不是很清楚。你的意思是'i'與選擇元素的'k'相同嗎?如果不是,那麼'i'和'k'如何關聯?另外,給定樣本數據的預期輸出是多少? – Divakar

+1

爲什麼這個C++? – Petr

+0

所以「i」是A的索引,而「k」是B的索引,它們都應該以相同的步驟向前移動,所以當我切入i元素(例如A的第一個)並且它在給定範圍我會將k元素(B的第一個)放在D上(在第一個空間中)......等等。是否清楚? –

回答

0
D=zeros(size(B)); 
idx = find(A>2 & A<4); 
D(idx) = B(idx) 
D = 

    0.00000 0.00000 0.30000 0.00000 0.00000 
+0

雖然這個答案可能是正確的,但請添加一些解釋。賦予基礎邏輯比賦予代碼更重要,因爲它可以幫助OP和其他讀者自己解決這個問題和類似的問題。 – CodeMouse92