在Julia中删除矩阵A的第二行是:
请注意,此代码不会返回新的矩阵A,而是在原地修改它。如果您想要一个新的矩阵,可以使用以下代码:deleteat!(A, 2)
B = A[setdiff(1:size(A, 1), 2), :]
你不能从矩阵中删除一行- Matlab有简单的语法,但事实上删除一行的方式是创建一个没有该行的副本,因此我们决定明确这一点,以便具有更透明的性能特征。您可以更改1维数组的大小,例如使用push!(v,x)
和pop!(v)
。
A(:)
、reshape(A,..)
以及某些permute(A,..)
的情况。 - AmronoRow10Mat = mat[-10,]
这样的语句。 - Cliff AB我认为这是最简短的答案:A[1:size(A,1) .!= 2,:]
https://groups.google.com/forum/#!topic/julia-dev/goVB9Pp74H4
end
。我经常使用 A[setdiff(1:end, 2), :]
,但是使用 1:end .!= 2
进行索引可能会更快。回答很好。 - mbauman我对Julia一无所知,但我认为它使用方括号 ([]
) 进行索引,因此您应该尝试以下操作:
A[2, :] = []
我手头没有Julia解释器来测试,但如果那也失败了,下面的方法应该能够解决:
A = A[[1, 3:end], :]
这只是使用相反的策略来选择您想要保留的行。
A[[1,3:end],:]
(用逗号连接):http://docs.julialang.org/en/latest/manual/getting-started/#noteworthy-differences-from-matlab 。建议的第一个解决方案无效。 - Amro以下内容适用于Julia 1.7.2
a = [1 2 3; 4 5 6; 7 8 9]
a[Not(1), :]
deleteat!
函数,非常快。对于矩阵/数组,您仍然需要使用@EitanT的解决方案。 - Colin T Bowers