如何从数组中删除零?

4.720次(最近30天)
猫王萨默斯
猫王萨默斯 2017年3月20日
编辑: 帕特里克·奔驰2021年10月6日11:18
我想从数组中移除零。数组每行都有一个零。例如:
A = [1 4 0 3;0 1 5 5;1 0 8 1;5 4 4 0;1 1 2 2
应该变成
A = [1 4 3;1 5 5;1 8 1;5 4 4;1 5 2]
我试过使用这个命令
(= = 0) = [];
但是,这将把2000x50数组变成1x98000数组,而不是我想要的2000x49数组。什么好主意吗?

接受的答案

Beder
Beder 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;1 1 2 2
v = 0(的);
newmat =重塑(v, 3、5)'

答案(1)

剑齐米。
剑齐米。 2018年12月12日
如果我们不知道移除零元素后要提交多少元素。
A =[是一个大矩阵]
v = 0(的);
newmat =重塑(v, ?, ?)
什么好主意吗?
6个评论
帕特里克·奔驰
帕特里克·奔驰 2021年10月6日8:13
我们可以用这个公式来表示,我们可以用这个公式来表示元素焓。
如果你想让我们的世界变得更强大,那么我们的世界将变得更强大,我们的世界将变得更强大。
我写了代码,所以在我的矩阵中,我有0 x 20的两个Ergebnis。
Wäre是我的朋友,请告诉我wüsste,我们可以在焓矩阵中找到0 ?
编辑:
如果你想要一个优雅的Ergebnis,我想要一个优雅的Ergebnis,我想要一个优雅的Ergebnis。
Elementset_Nodes = 22762 x21双
Node_Coord = 7765 x1双
r = 1;
[LIA, LOCB] = ismember (Elementset_Nodes(:, 2:结束),Node_Coord (: 1));
i = 1:长度(LOCB)
X = 0;
X =找到(LOCB(我,:));
如果和~ (X) = 0
j = 1:长度(X)
new_Mat (r, 1) = Elementset_Nodes(我,1);
new_Mat (r, j + 1) = LOCB (i (X (j));
结束
其他的
: new_Mat (r) = 0;
: new_Mat (r) = [];
结束
[r、c] =找到(new_Mat);
r = max (r) + 1;
结束
Elementset_Nodes = horzcat (Elementset_Nodes (: 1), new_Mat);

登录评论。

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!

翻译的