主要内容

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

NaN

创建所有 NaN 值的共存分布式数组

    说明

    cN = NaN(n,codist) 创建所有 NaN 值的 n×n 共存分布式矩阵,并使用 codist 来指定数组值在各个工作单元之间的分布。

    codist 指定为 "codistributed" 以使用默认的 codistributor1d 分发方案或者由 codistributor1dcodistributor2dbc 对象定义的分发方案。

    当您在通信作业或 spmd 代码块中创建共存分布式数组时,该函数会在每个工作单元上创建一个数组。如果您在通信作业或 spmd 代码块之外创建共存分布式数组,则该数组仅存储在创建该共存分布式数组的工作单元或客户端上。

    默认情况下,共存分布式数组具有底层类型 double

    示例

    cN = NaN(sz,codist) 创建所有 NaN 值的共存分布式数组,其中大小向量 sz 定义 cN 的大小。例如,NaN([2 3],"codistributed") 创建一个 2×3 的共存分布式数组。

    X = NaN(sz1,...,szN,codist) 创建一个由所有 sz1 值组成的 szN×...×NaN 共存分布式数组,其中 sz1,...,szN 表示每个维度的大小。

    cN = NaN(___,datatype,codist) 创建所有 NaN 值的共存分布式数组,其底层类型为 datatype。例如,NaN(1,"single","codistributed") 创建一个共存分布式单整数 NaN。您可以将此语法与前面语法中的任何大小参量一起使用。必须在数组大小和数据类型参量后指定 codist

    cN = NaN(___,"noCommunication") 创建所有 NaN 值的共存分布式数组,而不使用工作单元之间的通信。

    当您创建非常大的数组或者您的通信作业或 spmd 代码块使用许多工作单元时,工作单元之间的通信可能会减慢数组的创建速度。使用此语法可以减少工作单元之间的通信所需的时间来提高代码的性能。

    提示

    当您使用此语法时,会跳过一些错误检查步骤。在对代码进行原型设计后(无需指定 "noCommunication"),使用此语法可以提高代码的性能。

    cN = NaN(___,like=p) 使用数组 p 来创建所有 NaN 值的共存分布式数组。您还可以指定 "noCommunication" 作为函数调用的一部分。

    返回的数组 cI 具有与 p 相同的基础类型、稀疏性和复杂度(实数或复数)。

    示例

    全部折叠

    创建一个 1000×1000 的 NaN 值共存分布式双精度矩阵,按其第二个维度(列)分布。

    spmd(4)
        C = NaN(1000,"codistributed");
    end

    有 4 个工作单元,每个工作单元包含一个 1000×250 的本地 C 代码块。

    创建一个 1000×1000 的共存分布式 single NaN 值矩阵,按其列分布。

    spmd(4)
        codist = codistributor1d(2,100*[1:spmdSize]);
        C = NaN(1000,1000,"single",codist);
    end

    每个工作单元包含一个 100×spmdIndex 的本地 C 片段。

    输入参数

    全部折叠

    方阵的大小,指定为整数。

    • 如果 n0,那么 cN 就是空矩阵。

    • 如果 n 为负数,则该函数将其视为 0

    共存分布式数组的分布方案,指定为以下选项之一:

    • "codistributed" - 使用默认 codistributor1d 对象定义的默认分发方案。

    • codistributor1d 对象 - 使用 codistributor1d 对象中定义的一维分布方案。要使用默认的一维分布方案,您可以指定不带参量的 codistributor1d 函数。

    • codistributor2dbc 对象 - 使用 codistributor2dbc 对象中定义的二维块循环分布方案。要使用默认的二维块循环分布方案,您可以指定不带参量的 codistributor2dbc 函数。

    每个维度的大小,指定为整数行向量。该向量的每个元素表示相应维度的大小:

    • 如果任意维度的大小为 0,则 cN 就是空数组。

    • 如果任何维度的大小为负数,则该函数将其视为 0

    • 除了第二维度之外,NaN 会忽略大小为 1 的尾随维度。例如,NaN([3 1 1 1],"codistributed") 生成所有 NaN 值的 3×1 共存分布式向量。

    示例: sz = [2 3 4] 创建一个 2×3×4 的共存分布式数组。

    每个维度的大小,指定为整数值的单独参量。

    • 如果任意维度的大小为 0,则 cN 就是空数组。

    • 如果任何维度的大小为负数,则该函数将其视为 0

    • 除了第二个维度之外,该函数将忽略大小为 1 的尾随维度。

    返回数组的底层数据类型,即其元素的数据类型,指定为以下选项之一:

    • "double"

    • "single"

    数据类型: single | double

    要创建的数组的原型,指定为 codistributed 数组。

    如果不指定 datatype,则生成的共存分布式数组具有与 p 相同的基础类型、稀疏性和复杂度(实数或复数)。共存分布式数组 p 的底层数据类型必须是 singledouble

    数据类型: single | double

    版本历史记录

    在 R2006b 中推出