主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

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 对象的信息,请参阅 codistributor1dcodistributor2dbc 的参考页。

  • '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 的值。因此,每个工作单元上的数组对于该作业来说都是唯一的。然而,如果您重复这项作业,您会得到相同的随机数据。

版本历史记录

在 R2009b 中推出

全部展开