所以我想删除矩阵中包含零的行,但仅限于特定列。例如:
A = [[0 0 0 0; 1 2 0 4; 2 0 1 1; 0 0 0 0; 1 2 3 4; 0 1 2 3];
我想要矩阵 A 检查第二列和/或第四列是否包含零。如果这是真的:则删除整行。所以结果应该是:
A = [1 2 0 4; 1 2 3 4; 0 1 2 3];
我使用了这个功能:
new_a = A(all(A,2),:)
但我删除了所有包含零的行。
你可以写
>>> secondColIsNonzero = A(:, 2) ~= 0;
>>> fourthColIsNonzero = A(:, 4) ~= 0;
>>> keep = secondColIsNonzero & fourthColIsNonzero;
>>> newA = A(keep, :)
newA =
1 2 0 4
1 2 3 4
0 1 2 3
保留(即不删除)第二列或第四列都不为零的列。
对于不太详细的解决方案,请考虑同时对两列建立索引并使用all
带有维度参数:
keep = all(A(:, [2 4]) ~= 0, 2)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)