# 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

# 另请参阅

spzeros | spdiagm | sprand | sprandn