在matlab中比较两个不同长度的向量

时间:2017-06-11 17:12:42

标签: matlab vector

我有两个向量,一个是12x1,另一个是2430x1。我想获取第一个向量的每个元素,并找到第二个向量中匹配元素后之后的,将其保存在第三个向量中。

示例:

V1 = [1, 2, 3]
V2 = [1.2, 2.3, 2.5, 3.3, 3.4, 3.7 ......]

我希望在每个相应的V1元素之后立即获得每个V2元素的值。我应该得到

V3 = [1.2, 2.3, 3.3]

2 个答案:

答案 0 :(得分:2)

您可以使用interp1将插值方法设置为'next'

%remove common elements
V3 = setdiff(V2,V1);
%get the next elements
result = interp1(V3,V3, V1,'next','extrap')

感谢@SardarUsama的澄清和测试。

答案 1 :(得分:0)

听起来你想使用V1矢量作为索引来通过V2 ...尝试这个:

For i =1:length (V1)
V3 (i) = V2 (V1 (i));
End

我不确定这是否是你要求的......