您的位置:首页 > 编程语言 > MATLAB

matlab的cat函数

2017-01-11 09:21 239 查看
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) %合成效果如下图,连成为3维

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   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: