我正在尝试插入M*N
矩阵。例如,矩阵T
表示温度,矩阵B
表示位置:
T = [1 3 5; ...
2 4 6; ...
1 2 3];
B = [0.1 0.2 0.3; ...
0.1 0.2 0.3; ...
0.1 0.2 0.3];
我正在尝试在0.15
和0.25
位置获取温度信息。因此,矩阵B
将类似于:
New_B = [0.1 0.15 0.2 0.25 0.3; ...
0.1 0.15 0.2 0.25 0.3; ...
0.1 0.15 0.2 0.25 0.3];
矩阵T
的预期结果为:
T = [1 2 3 4 5; ...
2 3 4 5 6; ...
1 1.5 2 2.5 3];
我试过了:
New_T = interp2(T, B, New_B);
但它不起作用。我该怎么做插值?
答案 0 :(得分:2)
您必须使用for循环,因为interp1仅适用于单行。
T=[ 1 3 5; 2 4 6; 1 2 3];
B=[0.1 0.2 0.3; 0.1 0.2 0.3; 0.1 0.2 0.3];
B_new = [0.1 0.15 0.2 0.25 0.3; 0.1 0.15 0.2 0.25 0.3; 0.1 0.15 0.2 0.25 0.3];
T_new = cell(2,1);
for k=1:size(B,1)
T_new{k} = interp1(B(1,:),T(k,:),B_new(k,:));
end
T_new = cell2mat(T_new)
<强>输出:强>
T_new =
1.0000 2.0000 3.0000 4.0000 5.0000
2.0000 3.0000 4.0000 5.0000 6.0000
1.0000 1.5000 2.0000 2.5000 3.0000
答案 1 :(得分:2)