2014-01-08 56 views
-2

我在matlab中有一個數組Z = [x,y],我想刪除y的零值以及相應的x。我也想刪除下降的趨勢。幫我 Z =matlab初學數組問題

 0   0 
    11.0000   0 
    15.0000 4.1667 
    23.0000 4.1667 
    25.0000 2.7778 
    28.0000   0 
    49.0000   0 
    54.0000 4.1667 
    56.0000 4.1667 
    61.0000 8.8889 
    85.0000 8.8889 
    93.0000 2.7778 
    96.0000   0 
    117.0000   0 
    122.0000 4.1667 
    124.0000 4.1667 
    133.0000 9.7222 
    135.0000 9.7222 
    143.0000 13.8889 
    155.0000 13.8889 
    163.0000 9.7222 
    176.0000 9.7222 
    178.0000 8.8889 
    185.0000 2.7778 
    188.0000   0 
    195.0000   0 
+0

你是什麼意思「第二列下降趨勢」?你能用這個例子來解釋一下嗎? –

+0

我想刪除它開始減少的點數。我認爲它在這個數組中發生了三次。 – user3174907

+0

請儘可能清楚。在P0W的最終答案中,你是否想刪除行2 3 7 8 14 15 16 17 18? (這就是我所理解的「減少趨勢」) –

回答

1

第一部分(其中第2列是零刪除行):在@ P0W的答案,但all不需要:

Z(Z(:,2)==0,:) = []; 

第二部分(除去有行降第2列趨勢):使用diff

ind = find([diff(Z(:,2))]<0); 
Z(union(ind,ind+1),:) = []; 

我正在考慮「下降趨勢」爲已任第二列中連續的數據行的值減少。

1

使用all

你的條件是:

all(Z(:,2)==0,2)所有第二欄應該是零

然後,終於

Z(all(Z(:,2)==0,2),:)=[]會給你預期結果,即刪除整行

Z =[  0   0 ; 
    11.0000   0 ; 
    15.0000 4.1667 ; 
    23.0000 4.1667 ; 
    25.0000 2.7778 ; 
    28.0000   0 ; 
    49.0000   0 ; 
    54.0000 4.1667 ; 
    56.0000 4.1667 ; 
    61.0000 8.8889 ; 
    85.0000 8.8889 ; 
    93.0000 2.7778 ; 
    96.0000   0 ; 
    117.0000   0 ; 
    122.0000 4.1667 ; 
    124.0000 4.1667 ; 
    133.0000 9.7222 ; 
    135.0000 9.7222 ; 
    143.0000 13.8889 ; 
    155.0000 13.8889 ; 
    163.0000 9.7222 ; 
    176.0000 9.7222 ; 
    178.0000 8.8889 ; 
    185.0000 2.7778 ; 
    188.0000   0 ; 
    195.0000   0 ] 

>> Z(all(Z(:,2)==0,2),:)=[] 

Z = 

    15.0000 4.1667 
    23.0000 4.1667 
    25.0000 2.7778 
    54.0000 4.1667 
    56.0000 4.1667 
    61.0000 8.8889 
    85.0000 8.8889 
    93.0000 2.7778 
    122.0000 4.1667 
    124.0000 4.1667 
    133.0000 9.7222 
    135.0000 9.7222 
    143.0000 13.8889 
    155.0000 13.8889 
    163.0000 9.7222 
    176.0000 9.7222 
    178.0000 8.8889 
    185.0000 2.7778 
+0

非常感謝您的幫助。還有一件事,我也想在第二列中刪除下降的趨勢,並刪除相應的第一列值。 – user3174907

+0

@ P0W爲什麼「全部」? –