我有一个大小为13472x30974的矩阵A
。在第一行中,始终存在一个值(从1到30974)。如果特定列中的所有其他值都是NaN
,我想删除列。
我可以删除列,如果我将第一行与矩阵的其余部分分开,但我将无法将两个矩阵合并(因为它们的大小不同)。
B = A(:, ~all(isnan(A)));
我想使用any
代替all
不会返回所需的输出,因为有些列可能包含NaN
和实际值的值。
那么如何从2:13472
处理矩阵的部分,然后从1:13472
删除?
答案 0 :(得分:2)
您可以在isnan
行
2:end
B = A( :, ~all(isnan(A(2:end, :))) )
isnan
上运行A
- A(2:end, :)
A
- A(:, ___ )
如果您只想删除匹配的列,而不是分配给B
,请使用
A( :, all(isnan(A(2:end, :))) ) = [];