轉自:http://wqltrue.blog.163.com/blog/static/1157614102011113105547103/
cat:用來聯結數組
用法:C = cat(dim, A, B) 按dim來聯結A和B兩個數組。
C = cat(dim, A1, A2, A3, ...) 按dim聯結所有輸入的數組。
EXP: a=cat(3,A,B) 左括號後的3表示構造出的矩陣維數;在新的矩陣中第1、2維就是A和B]這兩
個矩陣的行數和列數,第3維是A和B]這兩個矩陣的矩陣個數,即爲2
cat(2, A, B)相當於[A, B];
cat(1, A, B)相當於[A; B].
使用“,”分割列表的語法,cat(dim, C{:})或cat(dim, C.field),這是將包含數據矩陣的cell或結構數組聯合爲一個數組的方便方式。
例如:
>> A = [1 2; 3 4];
>> B = [5 6; 7 8];
>> A
A =
1 2
3 4
>> B
B =
5 6
7 8
>> cat(1, A, B) %按列連接(列數相同)
ans =
1 2
3 4
5 6
7 8
>> cat(2, A, B) %按行連接(行數相同)
ans =
1 2 5 6
3 4 7 8
>> cat(3, A, B) %合成效果如下圖
ans(:,:,1) =
1 2
3 4
ans(:,:,2) =
5 6
7 8
a = magic(3)
b = pascal(3)
k=1,合併後形如 [a;b],行添加矩陣(要求a,b的列數相等才能合併);
>> c = cat(1,a,b)
c =
8 1 6
3 5 7
4 9 2
1 1 1
1 2 3
1 3 6
k=2,合併後形如[a,b],列添加矩陣(要求a,b的行數相等才能合併)
>> c = cat(2,a,b)
c =
8 1 6 1 1 1
3 5 7 1 2 3
4 9 2 1 3 6
>> c = cat(3,a,b)
c(:,:,1) =
8 1 6
3 5 7
4 9 2
c(:,:,2) =
1 1 1
1 2 3
1 3 6
n維的矩陣合併,要求n-1維維數相等纔可以.
>> c = cat(4,a,b)
c(:,:,1,1) =
8 1 6
3 5 7
4 9 2
c(:,:,1,2) =
1 1 1
1 2 3
1 3 6