C++ Matlab、向量比较和If循环

C++ Matlab、向量比较和If循环,c++,matlab,vector,C++,Matlab,Vector,我是新来的,我真的需要帮助。这是我的问题,我有两个相同大小的不同向量,例如: A= [1 2 3 4 2] B= [0.1 0.2 0.3 0.4 0.2] 现在。。我想做的是创建第三个向量D,它的大小与前两个向量相同,填充了B的一些特定元素。 特别是我想创建一个if循环,在这里我检查a的i元素,如果它在给定的范围内,我会选择B的k元素并将其放入D 我所做的就是用其中一个向量创建一个循环,它就工作了 D=zeros(size(A)) for i=1:length(A) if A(i)

我是新来的,我真的需要帮助。这是我的问题,我有两个相同大小的不同向量,例如:

A= [1 2 3 4 2]

B= [0.1 0.2 0.3 0.4 0.2]
现在。。我想做的是创建第三个向量D,它的大小与前两个向量相同,填充了B的一些特定元素。 特别是我想创建一个if循环,在这里我检查a的i元素,如果它在给定的范围内,我会选择B的k元素并将其放入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上的值,然后不选择I,而是选择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"

有人能帮忙吗?

我不太清楚i和k是A和B的第二个元素。你的意思是我和k在选择元素时是一样的吗?如果不是,我和k有什么关系?另外,给定样本数据的预期输出是什么?所以i是A的索引,k是B的索引,它们都应该以相同的步骤向前移动,所以当我检查A的i元素1st,并且它在给定范围内时,我将取B的k元素1st,并将其放在第一个空间中的D上……等等。。清楚吗?对于这个例子,应该是D=[0.3 0]这行吗DA>=2&A=2&Ayes正在工作!谢谢虽然这个答案可能是正确的,但请添加一些解释。传授底层逻辑比仅仅给出代码更重要,因为它可以帮助OP和其他读者自己解决这个问题和类似的问题。
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