主要内容

斯帕洛克

为稀疏矩阵分配空间

描述

实例

s=斯帕洛克(M,N,新西兰)创建一个全零稀疏矩阵s大小M-借-N有地方容纳新西兰非零元素,其中新西兰>=1.

例子

全部崩溃

使用斯帕洛克初始化10×10全零稀疏矩阵,最多可容纳20个非零元素。

S=淀粉(10,10,20);

在矩阵中定义几个元素。

S(1:3,1:3)=魔法(3)
S=(1,1)8(2,1)3(3,1)4(1,2)1(2,2)5(3,2)9(1,3)6(2,3)7(3,3)2

显示矩阵中非零元素的数量。

n1=北纬零度(S)
n1=9

显示为非零矩阵元素分配的存储量。

n2=nzmax(S)
n2=20

使用斯帕洛克用100个非零元素的空间初始化20×20全零稀疏矩阵。

n=20;S=spalloc(n,n,5*n);

然后使用对于循环以填充的列s一次一个,平均每列最多有5个非零元素。

对于j = 1:n S(:,j) = [0 (n-5,1);轮(兰德(5、1)));终止

绘制矩阵的稀疏模式s.点代表非零元素。

间谍(S)

图中包含一个axes对象。axes对象包含一个line类型的对象。

显示矩阵中非零元素的数量。

n1=北纬零度(S)
n1=54

显示为非零矩阵元素分配的存储量。

n2=nzmax(S)
n2=100

输入参数

全部崩溃

矩阵行数,指定为非负整数。

数据类型:仅有一个的|双重的|int8|int16|int32|int64|uint8|uint16|uint32|uint64|必然的

矩阵列数,指定为非负整数。

数据类型:仅有一个的|双重的|int8|int16|int32|int64|uint8|uint16|uint32|uint64|必然的

非零元素的存储分配,指定为非负整数。如果指定的值为0新西兰然后斯帕洛克而是设置新西兰对1。

数据类型:仅有一个的|双重的|int8|int16|int32|int64|uint8|uint16|uint32|uint64|必然的

局限性

  • 两个矩阵维数,MN,必须小于2^31-1在32位平台上,或2^48-1在64位平台上。

提示

  • 将多次指定给使用创建的矩阵时斯帕洛克,预分配的内存可以防止重复重新分配。但是,分配到稀疏矩阵仍然是一个相对昂贵的操作,如果可以轻松地用以下操作之一替换,则通常应避免此操作:

    • 一次打电话给稀疏的作用

    • 一次打电话给斯迪亚格斯作用

    • 一组矩阵的一次性串联,可以是稀疏的、密集的,也可以两者兼有

扩展能力

C/C++代码生成
使用Matlab®编码器生成C和C++代码™.

在R2006a之前引入