matlab的cat函數

轉自: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

發佈了23 篇原創文章 · 獲贊 106 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章