如何从矩阵中分离连续的数字组?

时间:2011-09-20 09:04:43

标签: arrays octave

我有一个包含3列的矩阵。在第二列中,我有一个连续数字,其增量为2.假设在该列中缺少一个数字,我想形成一个连续的单独数字组,而且我必须取相应的值到另外两列。

例如:

[1 2  3;
 1 4  6;
 1 6  0;
 1 10 3;
 1 12 6]...

在我的情况下,矩阵的顺序非常高,所以,请您告诉我哪个循环可以用于此以及如何解决这个问题?

1 个答案:

答案 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

希望这有帮助!