このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
cat
配列の連結
説明
例
2 つの行列
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
3 次元配列
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 の拡張
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
cell 配列内の行列
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
入力引数
dim
— 演算の対象の次元
正の整数スカラー
演算の対象の次元。正の整数のスカラーとして指定します。たとえば、A
と B
が両方とも 2 行 2 列の行列の場合、cat(1,A,B)
は垂直方向の連結により 4 行 2 列の行列を作成します。cat(2,A,B)
は水平方向の連結により 2 行 4 列の行列を作成します。
入力が table または timetable の場合、dim
は 1 または 2 でなければなりません。
A
— 1 番目の入力
スカラー | ベクトル | 行列 | 多次元配列 | table | timetable
1 番目の入力。スカラー、ベクトル、行列、多次元配列、table または timetable として指定します。
B
— 2 番目の入力
スカラー | ベクトル | 行列 | 多次元配列 | table | timetable
2 番目の入力。スカラー、ベクトル、行列、多次元配列、table または timetable として指定します。
B
の要素は、操作次元に沿って 1 番目の入力の末尾に連結されます。入力引数のサイズには互換性がなければなりません。たとえば、1 番目の入力が 3 行 2 列の行列である場合、B
には、垂直方向に連結する場合は 2 列、水平方向に連結する場合は 3 行がなければなりません。水平方向に連結する場合、すべての table 入力に一意の変数名がなければなりません。行名が存在する場合は、順序を除き、同じでなければなりません。同様に、すべての timetable 入力は行時間が同じで、すべての列は異なる名前をもたなければなりません。
異なるタイプの有効な組み合わせを連結できます。詳細については、異なるクラスの有効な組み合わせを参照してください。
A1,A2,…,An
— 入力のリスト
コンマ区切りリスト
入力のリスト。指定された順序で連結する配列のコンマ区切りリストとして指定します。
入力のサイズは互換性がなければなりません。たとえば、
A1
が長さ m の行ベクトルである場合、他の入力にはいずれも垂直方向に連結する列が m 列なければなりません。水平方向に連結する場合、すべての table 入力に一意の変数名がなければなりません。行名が存在する場合は、順序を除き、同じでなければなりません。同様に、すべての timetable 入力は行時間が同じで、すべての列は異なる名前をもたなければなりません。
異なるタイプの有効な組み合わせを連結できます。詳細については、異なるクラスの有効な組み合わせを参照してください。
ヒント
アルゴリズム
空の配列を空でない配列に連結する場合、cat
は出力で空の配列を除外します。たとえば、cat(2,[1 2],[])
は行ベクトル [1 2]
を返します。
すべての入力引数が空であり、サイズに互換性がある場合、cat
は入力が空でない場合と同じ出力サイズの空の配列を返します。たとえば、cat(2,zeros(0,1),zeros(0,2))
は 0 行 3 列の空の配列を返します。
拡張機能
tall 配列
メモリの許容量を超えるような多数の行を含む配列を計算します。
この関数は tall 配列を制限付きでサポートしています。
文字配列の垂直連結はサポートされていません。
1 以外の任意の次元の連結では、すべての入力引数が tall 配列でなければなりません。
詳細については、tall 配列を参照してください。
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
cell 配列の連結はサポートしません。
dim
を指定する場合、定数でなければなりません。ツールボックス関数のコード生成に対する可変サイズの制限 (MATLAB Coder)を参照してください。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
この関数は GPU 配列を完全にサポートしています。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
分散配列
Parallel Computing Toolbox™ を使用して、クラスターの結合メモリ上で大きなアレイを分割します。
この関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)