如何从数组中删除零?

3,517次观看(最近30天)
我想从数组中删除零。阵列每行完全为零。例如:
a = [1 4 0 3;0 1 5 5;1 0 8 1;5 4 4 0;0 1 5 2]
应该变成
a = [1 4 3;1 5 5;1 8 1;5 4 4;1 5 2]
I have tried using the command
a(a == 0)= [];
但是,这将2000x50阵列变成了1x98000阵列,而不是我想要的2000x49阵列。有任何想法吗?

接受的答案

贝德
贝德 2017年3月20日
编辑:Mathworks支金宝app持团队 2018年11月28日
要从矩阵的每一行中删除单个零,并重建了非零条目的新矩阵,请尝试以下代码:
a = [1 4 0 3;0 1 5 5;1 0 8 1;5 4 4 0;0 1 5 2]
v = nonzeros(a');
newmat = reshape(v,3,5)'

更多答案(1)

军刀kazemi
军刀kazemi 2018年12月12日
If we do not know how much of the elements to submit after we remove the zero elements.
a = [是一个大矩阵]
v = nonzeros(a');
newmat = reshape(v,?,?)''
有任何想法吗?
3条评论

登录发表评论。

社区寻宝

在Matlab Central中找到宝藏,发现社区如何为您提供帮助!

开始狩猎!