2017-07-20 123 views
1

我有一個NxM矩陣,其中一些行的代碼999爲缺失值。所有的矩陣元素都是陸地上的溫度,所以合理的數字在-100和100之間。每行代表一個時間上的「網格」,所以如果第一個元素,比如第10行是999,那麼其餘的也是。在Matlab中重塑NxMxT矩陣

我想比例如100 的玩具的例子,給了我正確的答案較大的數字刪除所有行是:

A = [1 1; 3 3; 999 999; 4 4; 999 999] 
A(A(:,:)>100)=[] 
reshape(A,3,2) 

我不喜歡矩陣A是2號線改造所以我必須做重塑。

有沒有更好的方法來刪除,在這種情況下,行3和5?

回答

2

可以使用數組索引與any(或all如果只比100更大所有值刪除行),並使用第二dim參數(因爲刪除行):

>> A = [1 1; 3 3; 999 999; 4 4; 999 999] 
>> A(not(any(A>100,2)),:) 

ans = 

1  1 
3  3 
4  4