2017-07-20 84 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