我有两个向量,例如
A = [1, 3, 6, 7]
B = [2.0, 5.1, 2.2, 1]
我想创建一个向量C
和C1
,因此它会创建缺少的元素,并为每个元素分配 平均值 B
中的相应周围元素。
C = [1, 2, 3, 4, 5, 6, 7]
C1 = [2.0, 3.55, 5.1, 3.65, 3.65, 2.2, 1]
最好的方法是什么?
答案 0 :(得分:0)
要使用interp1
,您需要
Ci = [1, 2, 3, 4.5, 4.5, 6, 7]
然后
C1 = interp1(A,B,Ci)
然而,生成Ci
与生成C1
一样困难。我想在这种情况下你最好的选择是循环:
%// Assuming A is sorted
C = min(A):max(A);
C1 = zeros(size(C));
Acounter = 1;
for ii = 1:numel(C)
if C(ii)==A(Acounter)
C1(ii) = B(Acounter);
Acounter = Acounter + 1;
else
C1(ii) = (B(Acounter) + B(Acounter-1))/2;
end
end