我有一个包含3列的矩阵。在第二列中,我有一个连续数字,其增量为2.假设在该列中缺少一个数字,我想形成一个连续的单独数字组,而且我必须取相应的值到另外两列。
例如:
[1 2 3;
1 4 6;
1 6 0;
1 10 3;
1 12 6]...
在我的情况下,矩阵的顺序非常高,所以,请您告诉我哪个循环可以用于此以及如何解决这个问题?
答案 0 :(得分:0)
我不知道我是否100%理解你的问题,但我会试一试。您可以使用interp1
函数在缺失的数据点上插入数据。 Interp1可以通过各种不同的方式进行插值,因此请查看其帮助文件。对于您给出的矩阵和线性插值,我将执行以下操作:
A = [1 2 3;
1 4 6;
1 6 0;
1 10 3;
1 12 6];
index = [min(A(:, 2)) : 2 : max(A(:, 2))]';
B = interp1(A(:,2), A(:, [1 3:end]), index, 'linear');
B = [B(:,1) index B(:,2:end)]
B =
1.00000 2.00000 3.00000
1.00000 4.00000 6.00000
1.00000 6.00000 0.00000
1.00000 8.00000 1.50000
1.00000 10.00000 3.00000
1.00000 12.00000 6.00000
希望这有帮助!