在 Matlab 中重塑 NxMxT 矩阵

Reshape NxMxT matrix in Matlab

我有一个 NxM 矩阵,其中某些行的缺失值代码为 999。所有矩阵元素都是陆地上的温度,所以合理的数字在 -100 到 100 之间。每行代表一个 'grid' 随着时间的推移,所以如果第一个元素,比如说第 10 行是 999,那么其余的也是。

我想删除所有数字大于例如 100 的行。 给出正确答案的玩具示例是:

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

我不喜欢第 2 行中矩阵 A 的变换,因此我必须进行整形。

在这种情况下,是否有更好的方法删除第 3 行和第 5 行?

如果仅删除所有值都大于 100 的行,则可以使用 any (or all 的数组索引),并使用第二个 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