帮助中心帮助中心
本页采用了机器翻译。点击此处可查看英文原文。
创建共分布稀疏矩阵
S = sparse(A)
S = sparse(m,n)
S = sparse(i,j,v)
S = sparse(i,j,v,m,n)
S = sparse(i,j,v,m,n,nz)
示例
S = sparse(A) 通过删除任何零元素将完全共分布矩阵转换为稀疏形式。您可以通过将包含许多零的矩阵转换为稀疏存储来节省内存。
S
A
S = sparse(m,n) 创建一个由 m 和 n 组成的全零共分布稀疏矩阵。
m,n
m
n
S = sparse(i,j,v) 由三元组 i、j 和 v 创建一个共分布稀疏矩阵 S。S 中的行数由 i 的最大值设置,S 中的列数由 j 的最大值设置。矩阵为 length(v) 非零元素分配了空间。
i,j
v
i
j
length(v)
每个输入 i、j 和 v 必须具有 1 或 N 元素,以便每个非标量输入具有相同数量的元素。
1
N
S = sparse(i,j,v,m,n) 将 S 的大小指定为 m-by-n。
S = sparse(i,j,v,m,n,nz) 为 nz 非零元素分配空间。使用此语法为构造后要填充的非零值分配额外的空间。
nz
全部折叠
创建一个 1000×1000 的共分布密集三角矩阵,按其第二维(列)分布。将共分布矩阵转换为共分布稀疏矩阵。
spmd(4) C = triu(rand(1000,1000,"codistributed")); S = sparse(C); end
有 4 个工作进程,每个工作进程包含一个 1000×250 的本地 C 块。
C
codistributed
输入矩阵,指定为满矩阵或 codistributed 矩阵。如果 A 已经是稀疏的,那么 sparse(A) 将返回 A。
sparse(A)
下标对,指定为标量、向量或矩阵的单独参量。如果 i 和 j 不是标量,则 i(k)、j(k) 和 v(k) 将 S(i(k),j(k)) 的值指定为:
i(k)
j(k)
v(k)
S(i(k),j(k))
S(i(k),j(k)) = v(k)
如果 i 或 j 是标量,该函数将使用该值来指定 S 中的多个元素。例如,如果仅 i 是标量,则 j(k) 和 v(k) 将 S(i,j(k)) 的值指定为:
S(i,j(k))
S(i,j(k)) = v(k)
如果 i 和 j 对于 v 中的几个元素具有相同的值,则 sparse 会聚合 v 中具有重复索引的值。聚合行为取决于 v 中值的数据类型:
sparse
对于逻辑值,sparse 应用 any 函数。
any
对于双精度值,sparse 应用 sum 函数。
sum
值,指定为标量、向量或矩阵。v 的底层类型必须是 double 或 logical。
double
logical
如果 v 不是标量,i(k)、j(k) 和 v(k) 将 S(i(k),j(k)) 的值指定为:
如果 v 是标量,该函数将使用该值来指定 S 中的多个元素。例如,如果仅 v 是标量,则 i(k) 和 j(k) 将 S(i(k),j(k)) 的值指定为:
S(i(k),j(k)) = v
v 中任何为零的元素都会被忽略,i 和 j 中相应的下标也会被忽略。
sparse 在忽略 v 中的任何零元素之前设置输出矩阵的行数和列数。因此,如果将 v 中的任何值设置为 0,则输出矩阵的大小将不会改变。
每个维度的大小,指定为单独的整数参量。m 和 n 的底层类型必须是 double。m 是行大小,n 是列大小。如果指定 m,则必须指定 n。
如果没有指定 m 和 n,那么 sparse 将使用默认值 m = max(i) 和 n = max(j)。这些最大值是在删除 v 中的任何零之前计算的。
m = max(i)
n = max(j)
非零元素的存储分配,指定为非负整数。m 和 n 的底层类型必须是 double。
默认值为 max([numel(i), numel(j), numel(v), 1])。nz 必须大于或等于该值。
max([numel(i), numel(j), numel(v), 1])
对于稀疏矩阵 S,nnz 函数返回矩阵中非零元素的数量,nzmax 函数返回为非零矩阵元素分配的存储量。如果 nnz(S) 和 nzmax(S) 返回不同的结果,那么分配的存储空间可能比实际需要的多。因此,仅当您想填充值时才设置 nz。
nnz
nzmax
nnz(S)
nzmax(S)
在 R2006b 中推出
sparse | codistributed.spalloc | distributed.spalloc
codistributed.spalloc
distributed.spalloc
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Contact your local office