メインコンテンツ

gcat

R2026b

(非推奨) spmd ワーカー上の配列を連結する

    gcat は推奨されません。代わりに spmdCat を使用してください。詳細については、バージョン履歴を参照してください。

    説明

    B = gcat(A) は、spmd ブロックまたは通信ジョブを実行している各ワーカー上で定義されている配列 A を水平方向に連結します。

    parfor、parfeval、または parfevalOnAll を使用して並列プールでコードを実行する場合、各ワーカーは独立しており、相互の通信は行われません。これらのワーカー上で gcat を使用した場合、結果はクライアント上で gcat を使用した場合と同じになります。

    gcat は、各ワーカー上で定義されている配列 A を 2 番目の次元に沿って連結できる場合にのみ使用できます。

    gcat は、配列を 2 番目の次元に沿って連結したうえで、その結果をすべてのワーカーに保存します。A の値は各ワーカーから取得され、labindex の順序で連結されます。たとえば、gcat(labindex) は 1:numlabs を返します。

    numlabs が 1 と等しい場合、B は A と等しくなります。

    例

    B = gcat(A,dim) は、各ワーカー上で定義されている配列 A を次元 dim に沿って連結します。

    gcat は、すべての配列のサイズに互換性がある (操作次元 dim 以外の次元の長さが一致する) ときに、配列 A を次元 dim に沿って連結する場合にのみ使用できます。

    B = gcat(A,dim,destination) は、各ワーカー上で定義されている配列 A を連結し、結果を 1 つのワーカーのみに保存します。

    例

    すべて折りたたむ

    この例では、gcat を使用して、spmd ブロックの各ワーカー上に保持されているスカラーを連結する方法を説明します。

    4 つのワーカーをもつ並列プールを既定のプロファイルで作成します。

    parpool(4);

    spmd ブロックを作成します。既定では、プール内の各ワーカーは spmd ブロックを実行します。各ワーカー上で labindex から返された値を A として保存した後、gcat を使用して、各ワーカーで定義されている A の値を取得し連結します。

    gcat を使用すると、結果は既定で各ワーカーに保存されます。クライアント上では、結果は Composite 配列です。結果を取得するには、Composite 配列にインデックスを付けます。

    spmd
        B = gcat(labindex);
    end
    B{1}
    ans =
         1     2     3     4

    入力引数

    すべて折りたたむ

    入力配列。スカラー、ベクトル、行列、多次元配列、table、timetable、または連結をサポートする任意の MATLAB 変数として指定します。

    例: A = magic(3)

    それに沿って操作を行う次元。正の整数スカラーとして指定します。たとえば、すべてのワーカー上で A が 2 行 2 列の行列である場合、gcat(A,1) は垂直方向に連結を行って 2*numlabs 行 2 列の行列を作成します。gcat(A,2) は、水平方向に連結を行って 2 行 2*numlabs 列の行列を作成します。

    既定値は 2 です。

    table または timetable 入力の場合、dim は 1 または 2 でなければなりません。

    保存先ワーカーのインデックス。正の整数スカラーとして指定します。値は、現在の spmd ブロックまたは通信ジョブで numlabs を使用する際に返される、指定の値以下でなければなりません。指定した場合、B = gcat(A,dim,destination) を実行して得られる結果 B は 1 つのワーカー上にのみ保存されます。配列 B は、gcat を実行するすべてのワーカー上で定義されたままとなります。labindex が destination と等しいワーカーにおいて、C は連結の結果となります。他のすべてのワーカーでは、C は [] です。

    出力引数

    すべて折りたたむ

    出力配列。任意の MATLAB 変数として返されます。

    destination を指定した場合、B は、labindex が destination と等しいワーカー上での連結の結果となります。他のすべてのワーカーでは、B は [] です。

    アルゴリズム

    gcat(A) を使用すると、各ワーカー上の A の値が他のワーカー上の値と連結されます。

    Diagram showing how four workers combine arrays specified as A into a single array, B.

    バージョン履歴

    R2006b で導入

    すべて折りたたむ

    参考