Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

cat

説明

C = cat(dim,A,B) は、AB が互換性のあるサイズをもつ (操作次元 dim 以外の次元の長さが一致する) 場合に、次元 dim に沿って BA の末尾に連結します。

C = cat(dim,A1,A2,…,An) は、A1A2、…、An を次元 dim に沿って連結します。

大かっこ演算子 [] を使用して、配列の連結または追加ができます。たとえば、[A,B] および [A B] は配列 AB を水平方向に連結し、[A; B] は垂直方向に連結します。

すべて折りたたむ

2 つの行列を垂直方向に連結し、次に水平方向に連結します。

2 つの行列を作成し、2 番目の行列を最初の行列に垂直方向に追加します。

A = ones(3)
A = 3×3

     1     1     1
     1     1     1
     1     1     1

B = zeros(3)
B = 3×3

     0     0     0
     0     0     0
     0     0     0

C1 = cat(1,A,B)
C1 = 6×3

     1     1     1
     1     1     1
     1     1     1
     0     0     0
     0     0     0
     0     0     0

次に、2 番目の行列を最初の行列に水平方向に追加します。

C2 = cat(2,A,B)
C2 = 3×6

     1     1     1     0     0     0
     1     1     1     0     0     0
     1     1     1     0     0     0

2 つの 3 次元配列を作成し、3 番目の次元に沿って連結します。結果の配列で 1 番目と 2 番目の次元の長さは入力配列の対応する長さに一致し、3 番目の次元は拡張されます。

A = rand(2,3,4);
B = rand(2,3,5);
C = cat(3,A,B);
szC = size(C)
szC = 1×3

     2     3     9

table を作成し、cell 配列を使用して 1 行を追加します。

LastName = {'Sanchez';'Johnson';'Li';'Diaz'};
Age = [38;43;38;40];
T1 = table(LastName,Age)
T1=4×2 table
     LastName      Age
    ___________    ___

    {'Sanchez'}    38 
    {'Johnson'}    43 
    {'Li'     }    38 
    {'Diaz'   }    40 

Trow = {'Brown',49};
T2 = cat(1,T1,Trow)
T2=5×2 table
     LastName      Age
    ___________    ___

    {'Sanchez'}    38 
    {'Johnson'}    43 
    {'Li'     }    38 
    {'Diaz'   }    40 
    {'Brown'  }    49 

日付文字ベクトル、string 日付および datetime を連結して 1 列の日付にします。結果は datetime ベクトルになります。

chardate = '2016-03-24';
strdate = "2016-04-19";
t = datetime('2016-05-10','InputFormat','yyyy-MM-dd');
C = cat(1,chardate,strdate,t)
C = 3x1 datetime
   24-Mar-2016
   19-Apr-2016
   10-May-2016

2 つの行列を含む cell 配列を作成し、それらの行列を垂直方向と水平方向の両方で連結します。

M1 = [1 2; 3 4];
M2 = [5 6; 7 8];
A1 = {M1,M2};
Cvert = cat(1,A1{:})
Cvert = 4×2

     1     2
     3     4
     5     6
     7     8

Chorz = cat(2,A1{:})
Chorz = 2×4

     1     2     5     6
     3     4     7     8

入力引数

すべて折りたたむ

演算の対象の次元。正の整数のスカラーとして指定します。たとえば、AB が両方とも 2 行 2 列の行列の場合、cat(1,A,B) は垂直方向の連結により 4 行 2 列の行列を作成します。cat(2,A,B) は水平方向の連結により 2 行 4 列の行列を作成します。

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

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

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

  • B の要素は、操作次元に沿って 1 番目の入力の末尾に連結されます。入力引数のサイズには互換性がなければなりません。たとえば、1 番目の入力が 3 行 2 列の行列である場合、B には、垂直方向に連結する場合は 2 列、水平方向に連結する場合は 3 行がなければなりません。

  • 水平方向に連結する場合、すべての table 入力に一意の変数名がなければなりません。行名が存在する場合は、順序を除き、同じでなければなりません。同様に、すべての timetable 入力は行時間が同じで、すべての列は異なる名前をもたなければなりません。

  • 異なるタイプの有効な組み合わせを連結できます。詳細については、異なるクラスの有効な組み合わせを参照してください。

入力のリスト。指定された順序で連結する配列のコンマ区切りリストとして指定します。

  • 入力のサイズは互換性がなければなりません。たとえば、A1 が長さ m の行ベクトルである場合、他の入力にはいずれも垂直方向に連結する列が m 列なければなりません。

  • 水平方向に連結する場合、すべての table 入力に一意の変数名がなければなりません。行名が存在する場合は、順序を除き、同じでなければなりません。同様に、すべての timetable 入力は行時間が同じで、すべての列は異なる名前をもたなければなりません。

  • 異なるタイプの有効な組み合わせを連結できます。詳細については、異なるクラスの有効な組み合わせを参照してください。

ヒント

  • string、文字ベクトル、または文字ベクトルの cell 配列を水平方向に連結してテキストを作成する場合は、関数 strcat を使用します。

  • 文字ベクトルの cell 配列または string 配列から単一の区切りテキストを作成する場合は、関数 strjoin を使用します。

アルゴリズム

空の配列を空でない配列に連結する場合、cat は出力で空の配列を除外します。たとえば、cat(2,[1 2],[]) は行ベクトル [1 2] を返します。

すべての入力引数が空であり、サイズに互換性がある場合、cat は入力が空でない場合と同じ出力サイズの空の配列を返します。たとえば、cat(2,zeros(0,1),zeros(0,2)) は 0 行 3 列の空の配列を返します。

拡張機能

バージョン履歴

R2006a より前に導入