2015-10-06 129 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