julia算法中稀疏矩阵对角线的有效插入

julia算法中稀疏矩阵对角线的有效插入,julia,sparse-matrix,finite-element-analysis,Julia,Sparse Matrix,Finite Element Analysis,我在研究电磁计算方法。这些方法使用了大量数据,只有少数对角线设置为非零。所以我的问题是:如何有效地在julia中设置现有矩阵的对角线?似乎有一个函数用值填充两条对角线之间的空间,但由于某些原因,它没有从模块中导出。您可以使用索引赋值: julia> using SparseArrays, LinearAlgebra julia> S = spzeros(10,10) 10×10 SparseMatrixCSC{Float64,Int64} with 0 stored entries

我在研究电磁计算方法。这些方法使用了大量数据,只有少数对角线设置为非零。所以我的问题是:如何有效地在julia中设置现有矩阵的对角线?

似乎有一个函数用值填充两条对角线之间的空间,但由于某些原因,它没有从模块中导出。

您可以使用索引赋值:

julia> using SparseArrays, LinearAlgebra

julia> S = spzeros(10,10)
10×10 SparseMatrixCSC{Float64,Int64} with 0 stored entries

julia> S[diagind(S)] = rand(10); S
10×10 SparseMatrixCSC{Float64,Int64} with 10 stored entries:
  [1 ,  1]  =  0.2907
  [2 ,  2]  =  0.451863
  [3 ,  3]  =  0.920742
  [4 ,  4]  =  0.0674684
  [5 ,  5]  =  0.587077
  [6 ,  6]  =  0.61916
  [7 ,  7]  =  0.450401
  [8 ,  8]  =  0.596222
  [9 ,  9]  =  0.597324
  [10, 10]  =  0.210721

是的<代码>填充带函数无论如何都能做到这一点