我有一个矩阵,列中填充了零,我想将矩阵复制到一个新矩阵中,但要跳过带有零的列。
有没有可以帮助我的命令?我尝试用稀疏命令来做,但我真的不明白那里发生了什么。它会跳过零,但是当您想知道新矩阵中有多少列时,它仍会显示初始大小。
答案 0 :(得分:6)
这很简单
>> noZeros = withZeros(:, any( withZeros, 1 ) )
命令any( withZeros, 1 )
为size(A,2)
中至少有一个非零条目的每列返回长度为true
且withZeros
的逻辑向量。
或者,您可以删除列
>> withZeros(:, all( withZeros == 0, 1 ) ) = [];
答案 1 :(得分:6)
假设您有一个大小为100x100的随机矩阵
A = rand(100);
我们假设第15列为零
A(:,15) = 0;
然后您可以使用
删除此列A=A(:,any(A))