codistributed.spalloc
为稀疏共存分布式矩阵分配空间
语法
SD = codistributed.spalloc(M,N,nzmax)
SD = spalloc(M,N,nzmax,codist)
SD = codistributed.spalloc(___,typename)
说明
SD = codistributed.spalloc(M,N,nzmax) 创建一个 M×N 全零稀疏共存分布式矩阵,并有空间容纳 nzmax 非零值。
codistributed.spalloc 的可选参量必须在必需参量之后指定,并按照以下顺序指定:
codist- 指定结果数组的分布方案的协同分布器对象。如果省略,则使用默认分布方案分布数组。为非零元素分配的空间与根据协同分布器的Partition在工作单元之间进行的矩阵分配一致。'noCommunication'- 指定构造数组时不进行任何通信,跳过一些错误检查步骤。您还可以将此参量与SD = spalloc(M,N,nzmax,codistr)一起使用。
SD = spalloc(M,N,nzmax,codist) 与 SD = codistributed.spalloc(M,N,nzmax,codist) 相同。您还可以使用此语法的可选参量。
SD = codistributed.spalloc(___,typename) 还指定了之前任何语法中的数据类型(类)。typename 输入可以是 "single"、"double" 或 "logical"。 (自 R2025a 起)
示例
为 1000×1000 的稀疏共存分布式矩阵分配空间,最多可容纳 2000 个非零元素。使用默认的协同分布器。定义矩阵的几个元素。
spmd % codistributed array created inside spmd statement N = 1000; SD = codistributed.spalloc(N,N,2*N); for ii=1:N-1 SD(ii,ii:ii+1) = [ii ii]; end end
使用 spalloc 初始化一个 10×10 的全零稀疏共存分布式单精度矩阵,该矩阵可容纳最多 20 个非零元素。在矩阵中定义多个元素。
spmd SD = codistributed.spalloc(10,10,20,"single"); SD(1:3,1:3) = magic(3); end