codistributed.sprand
创建均匀分布的伪随机值的共存分布式稀疏数组
语法
CS = codistributed.sprand(m,n,density)
CS = sprand(n,codist)
DS = distributed.sprand(___,typename)
说明
CS = codistributed.sprand(m,n,density)
创建一个 m
×n
稀疏共存分布式数组,其中大约有 density*m*n
个均匀分布的非零双重条目。
codistributed.sprand
的可选参量必须在必需参量之后指定,并按照以下顺序指定:
codist
- 指定结果数组的分布方案的协同分布器对象。如果省略,则使用默认分布方案分布数组。有关构造 codistributor 对象的信息,请参阅codistributor1d
和codistributor2dbc
的参考页。'noCommunication'
- 指定在构造数组时不执行任何工作单元间的通信,从而跳过一些错误检查步骤。
CS = sprand(n,codist)
与 CS = codistributed.sprand(n, codist)
相同。您还可以使用此语法的可选参量。要使用默认分布方案,请指定一个不带参量的 codistributor 构造函数。例如:
spmd CS = codistributed.sprand(8,8,0.2,codistributor1d); end
DS = distributed.sprand(___,typename)
还指定了之前任何语法中的数据类型(类)。typename
输入可以是 "single"
或 "double"
。 (自 R2025a 起)
示例
使用四个工作单元,创建一个 1000×1000 的稀疏共存分布式双精度数组 CS
,其中包含大约 1000 个非零元素。CS
通过其第二个维度(列)进行分布。
spmd(4) CS = codistributed.sprand(1000,1000,0.001); end
创建一个 10×10 的共存分布式双精度数组 CS
,其中包含大约 10 个非零元素。CS
按列分布,每个工作单元包含一个 10×spmdIndex
的本地片段 CS
。
spmd(4) codist = codistributor1d(2,1:spmdSize); CS = sprand(10,10,0.1,codist); end
创建一个随机 500×1000 的稀疏共存分布式单精度数组,密度为 0.1。
spmd(5) CS = codistributed.sprand(500,1000,0.1,"single"); end
提示
当您在并行池中的工作单元上、在独立或通信作业中使用 sprand
时,每个工作单元都会将其随机生成器种子设置为仅取决于 spmdIndex
或任务 ID 的值。因此,每个工作单元上的数组对于该作业来说都是唯一的。然而,如果您重复这项作业,您会得到相同的随机数据。