MATLAB 帮助中心
本页采用了机器翻译。点击此处可查看最新英文版本。
创建共存分布式稀疏矩阵
S = sparse(A)
S = sparse(m,n)
S = sparse(m,n,typename)
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(m,n,typename) 还指定了共存分布式稀疏矩阵的数据类型(类)。typename 输入可以是 "single" 或 "double"。 (自 R2025a 起)
typename
"single"
"double"
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×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)
自 R2025a 起
要创建的数据类型(类),指定为以下选项之一:
您只能将 typename 参量与 m,n 参量一起指定。
全部展开
您可以通过将 typename 参量指定为 "double" 或 "single" 来指定输出数据类型。
sparse | codistributed.spalloc | distributed.spalloc
codistributed.spalloc
distributed.spalloc
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处