删除julia数组上的空列
与Julia商量,我希望删除值为0的列。我有一个数组,下面有很多空列,我想删除它们删除julia数组上的空列,julia,Julia,与Julia商量,我希望删除值为0的列。我有一个数组,下面有很多空列,我想删除它们 115×40 Array{Float64,2}: -0.0 -0.0 -0.0 -0.0 … -0.0 0.0 -0.0 0.0 -0.0 -0.0 -0.0 0.0 0.0 0.0 -0.0 -0.0 -0.0 -0.0 -0.0 0.0 -0.0 0.0 0.0 -0.0 -0.0 -0.0 0.0 0.0 0
115×40 Array{Float64,2}:
-0.0 -0.0 -0.0 -0.0 … -0.0 0.0 -0.0
0.0 -0.0 -0.0 -0.0 0.0 0.0 0.0
-0.0 -0.0 -0.0 -0.0 -0.0 0.0 -0.0
0.0 0.0 -0.0 -0.0 -0.0 0.0 0.0
0.0 0.0 0.0 -0.0 -0.0 0.0 0.0
-0.0 1.0 -0.0 0.0 … -0.0 0.0 0.0
-0.0 -0.0 0.0 -0.0 -0.0 0.0 0.0
0.0 -0.0 -0.0 -0.0 0.0 0.0 0.0
0.0 -0.0 0.0 -0.0 -0.0 0.0 0.0
⋮ ⋱
0.0 1.0 -0.0 -0.0 0.0 -0.0 -0.0
-0.0 -0.0 0.0 -0.0 0.0 -0.0 -0.0
1.0 0.0 -0.0 -0.0 0.0 -0.0 0.0
-0.0 0.0 -0.0 -0.0 … 0.0 -0.0 -0.0
0.0 0.0 -0.0 0.0 -0.0 -0.0 -0.0
-0.0 -0.0 -0.0 0.0 -0.0 -0.0 -0.0
0.0 -0.0 -0.0 0.0 -0.0 0.0 0.0
-0.0 -0.0 -0.0 -0.0 -0.0 1.0 0.0
有人知道怎么做吗
关于,让
a
作为数组,然后
a[:, vec(mapslices(col -> any(col .!= 0), a, dims = 1))]
工作mapslices
将a
减少为1x40布尔矩阵,表示非零列,我们需要将其转换为向量
进行索引,因此vec
(或者,可以dropdims
)
取决于您的应用程序,一个而不是一个副本可能就足够了。mapslices(col->all(col.!=0),a,dims=1)返回一个完全错误的数组,这不是预期的结果。设置all(col.==0)确实会返回数组,其中null列为True。接线员是什么≉ 用过吗?使用mapsicles(col->any(col.!=0),solution_raw,dims=1)似乎可以解决这个问题。当然,我在复制时混淆了
any
和all
<代码>≈是我习惯性使用的操作符形式,但结果过于谨慎:文档解释说x≈ 默认情况下,0
相当于x==0
。但是,如果您希望有一些小值,这些值在数学上应该是零,但在数字上不是零,那么可以将isapprox
与非零atol
参数一起使用。