2013-02-11 106 views
3

在Matlab中,如何從我需要的矩陣中刪除特定行?例如,如果我想刪除矩陣中包含特​​定值(如0或NaN)的所有行?如何根據一些標準在Matlab中刪除矩陣行?

+1

你是什麼意思刪除? – fpe 2013-02-11 12:08:34

+0

嘿,被刪除我的意思是擦除包含特定值的整個行:)如果我有一個3乘3的矩陣A = [1 0 0; 2 5 4; 7 8 8];我想刪除所有包含數字7的行,那麼我的簡化矩陣就是A = [1 0 0; 2 5 4]; – jjepsuomi 2013-02-11 12:14:02

回答

4

比方說,你有A

A = [1 2 3;4 5 0; 7 8 9; 10 NaN 12] 

A = 

    1  2  3 
    4  5  0 
    7  8  9 
    10 NaN 12 

然後,您可以選擇行如下:

any(isnan(A')) 

ans = 

    0  0  0  1 

刪除這些NaN含行,你可以這樣做:

A(any(isnan(A')),:) = [] 

A = 

    1  2  3 
    4  5  0 
    7  8  9 

您可以選擇0-any(A' == 0)。如果要將所有元素設置爲0 s或NaN s,則可以使用all而不是any

+0

謝謝!正是我在找的=) – jjepsuomi 2013-02-11 12:15:15