ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

repmat

配列のコピーの繰り返し

構文

  • B = repmat(A,n)
  • B = repmat(A,r1,...,rN)
  • B = repmat(A,r)

説明

B = repmat(A,n) は、行と列の次元に A のコピーを n 個含む配列を返します。A が行列の場合、B のサイズは size(A)*n です。

B = repmat(A,r1,...,rN) は、スカラーのリスト r1,..,rN を指定します。このリストは、各次元への A のコピーの配置方法を指定します。A の次元が N の場合、B のサイズは size(A).*[r1...rN] です。たとえば、repmat([1 2; 3 4],2,3) は 4 行 6 列の行列を返します。

B = repmat(A,r) は、行ベクトル r を使って繰り返しの方法を指定します。たとえば、repmat(A,[2 3])repmat(A,2,3) と同じ結果を返します。

すべて折りたたむ

行列のコピーを繰り返して 2 行 2 列のブロック配置にします。

A = diag([100 200 300])
A =

   100     0     0
     0   200     0
     0     0   300

B = repmat(A,2)
B =

   100     0     0   100     0     0
     0   200     0     0   200     0
     0     0   300     0     0   300
   100     0     0   100     0     0
     0   200     0     0   200     0
     0     0   300     0     0   300

行列のコピーを繰り返して 2 行 3 列のブロック配置にします。

A = diag([100 200 300])
A =

   100     0     0
     0   200     0
     0     0   300

B = repmat(A,2,3)
B =

   100     0     0   100     0     0   100     0     0
     0   200     0     0   200     0     0   200     0
     0     0   300     0     0   300     0     0   300
   100     0     0   100     0     0   100     0     0
     0   200     0     0   200     0     0   200     0
     0     0   300     0     0   300     0     0   300

行列のコピーを繰り返して 2 x 3 x 2 のブロック配置にします。

A = [1 2; 3 4]
A =

     1     2
     3     4

B = repmat(A,[2 3 2])
B(:,:,1) =

     1     2     1     2     1     2
     3     4     3     4     3     4
     1     2     1     2     1     2
     3     4     3     4     3     4


B(:,:,2) =

     1     2     1     2     1     2
     3     4     3     4     3     4
     1     2     1     2     1     2
     3     4     3     4     3     4

行ベクトルを垂直に 4 回積み重ねます。

A = 1:4;
B = repmat(A,4,1)
B =

     1     2     3     4
     1     2     3     4
     1     2     3     4
     1     2     3     4

列ベクトルを水平に 4 回積み重ねます。

A = (1:3)';
B = repmat(A,1,4)
B =

     1     1     1     1
     2     2     2     2
     3     3     3     3

変数 Age および Height をもつテーブルを作成します。

A = table([39; 26],[70; 63],'VariableNames',{'Age' 'Height'})
A = 

    Age    Height
    ___    ______

    39     70    
    26     63    

テーブルのコピーを繰り返して 2 行 3 列のブロック形式にします。

B = repmat(A,2,3)
B = 

    Age    Height    Age_1    Height_1    Age_2    Height_2
    ___    ______    _____    ________    _____    ________

    39     70        39       70          39       70      
    26     63        26       63          26       63      
    39     70        39       70          39       70      
    26     63        26       63          26       63      

repmat は、テーブルのエントリを繰り返し、新しい変数名に番号を追加します。

入力引数

すべて折りたたむ

入力配列。スカラー、ベクトル、行列または多次元配列として指定します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | struct | table | cell
複素数のサポート: はい

入力配列を行と列の次元で繰り返す回数。整数値として指定します。n0 または負の値の場合、結果は空の配列になります。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

各次元の繰り返し数。整数値の個別の引数として指定します。0 または負の繰り返し数が含まれる場合、結果は空の配列になります。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

各次元の繰り返し数のベクトル。整数値の行ベクトルとして指定します。r0 または負の値が含まれている場合、結果は空の配列になります。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

詳細

すべて折りたたむ

ヒント

  • 1 の配列をもつ入力のテンソル積を形成してブロック配列を作成するには、kron を使用してください。たとえば、行ベクトル A = 1:3 を縦に 4 回積み重ねる場合、B = kron(A,ones(4,1)) を使用します。

  • 1 度の呼び出しでブロック配列を作成して二項演算を実行するには、bsxfun を使用してください。場合によっては、bsxfun で、よりシンプルかつメモリ効率の高いソリューションが提供されます。たとえば、ベクトル A = 1:5B = (1:10)' を追加して 10 行 5 列の配列を生成するには、repmat(A,10,1) + repmat(B,1,5) ではなく、bsxfun(@plus,A,B) を使用します。

  • A が特定のタイプのスカラーである場合、他の関数を使用して repmat と同じ結果を得ることができます。

    repmat 構文等価な代替法
    repmat(NaN,m,n)NaN(m,n)
    repmat(single(inf),m,n)inf(m,n,'single')
    repmat(int8(0),m,n)zeros(m,n,'int8')
    repmat(uint32(1),m,n)ones(m,n,'uint32')
    repmat(eps,m,n)eps(ones(m,n))

R2006a より前に導入

この情報は役に立ちましたか?