2011-09-20 121 views
0

我有一個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 

希望這有助於!