# spalloc
为稀疏矩阵分配空间
函数库: TyMath
# 语法
S = spalloc(m,n)
# 说明
S = spalloc(m,n) 创建一个大小为 m×n 的全零稀疏矩阵 S。示例
# 示例
创建具有指定大小和预分配的稀疏矩阵
使用 spalloc 初始化一个 10×10 全零稀疏矩阵。
using TyMath
S = spalloc(10,10);
定义矩阵中的几个元素。
S[1:3,1:3] = magic(3)
S
S = 10×10 SparseMatrixCSC{Float64, Int64} with 9 stored entries:
8.0 1.0 6.0 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅
3.0 5.0 7.0 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅
4.0 9.0 2.0 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅
⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅
⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅
⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅
⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅
⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅
⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅
⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅
显示矩阵中非零元素的数量。
n1 = nnz(S)
n1 = 9
创建具有非零列的稀疏矩阵
使用 spalloc 初始化一个 20×20 全零稀疏矩阵。
using TyMath
using TyPlot
n = 20;
S = spalloc(n,n);
然后使用 for 循环填充 S 的列,一次填充一列,平均每列最多五个非零元素。
rng = MT19937ar(5489)
for j = 1:n
S[:,j] = [zeros(n-5,1); nearest.(rand(rng,5,1))];
end
绘制矩阵 S 的稀疏模式。圆点表示非零元素。
spy(S)
显示矩阵中非零元素的数量。
n1 = nnz(S)
n1 = 54
# 输入参数
m - 矩阵行数非负整数
矩阵行数,指定为非负整数。
数据类型: Int64 | Int32 | Int16 | Int8 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128
n - 矩阵列数非负整数
矩阵列数,指定为非负整数。
数据类型: Int64 | Int32 | Int16 | Int8 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128