使用BandedMatrices
包,有没有办法用所选值创建SymBandedMatrix
?文档中有各种构造函数,但似乎都没有接受输入值。索引并没有实现。这是故意还是没有完成?
julia> using BandedMatrices
julia> a = BandedMatrices.SymBandedMatrix(Float64,5,1)
5×5 BandedMatrices.SymBandedMatrix{Float64}:
6.90681e-310 6.90681e-310
6.90681e-310 6.90682e-310 6.90682e-310
6.90682e-310 6.90682e-310 6.90681e-310
6.90681e-310 6.90681e-310 6.90681e-310
6.90681e-310 6.90684e-310
julia> a[1,1]=1
ERROR: indexing not defined for BandedMatrices.SymBandedMatrix{Float64}
Stacktrace:
[1] setindex!(::BandedMatrices.SymBandedMatrix{Float64}, ::Int64, ::Int64, ::Int64) at ./abstractarray.jl:966
答案 0 :(得分:1)
以下可能是一个未经解决的解决方案:
<nav id="navi_side">
<ul>
<li><a href="">F</a></li>
<li><a href="">G</a></li>
<li><a href="">F</a></li>
<li><a href="">G</a></li>
<li><a href="">H</a></li>
</ul>
<ul>
<li><a href="">F</a></li>
<li><a href="">G</a></li>
<li><a href="">H</a></li>
</ul>
<ul>
<li><a href="">I</a></li>
<li><a href="">J</a></li>
<li><a href="">K</a></li>
<li><a href="">L</a></li>
</ul>
</nav>
给出问题中的代码:
Base.setindex!(M::SymBandedMatrix,val,r,c) =
( (a,b) = minmax(r,c) ; M.data[M.k+a-b+1,b-a+1]=val )