如何使用选定的值创建SymBandedMatrix?

时间:2017-12-11 17:16:17

标签: julia

使用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

1 个答案:

答案 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 )