ゞ_轻描丶幸福的 发表于 2016-3-4 17:05

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)相当于;
cat(1, A, B)相当于.
使用“,”分割列表的语法,cat(dim, C{:})或cat(dim, C.field),这是将包含数据矩阵的cell或结构数组联合为一个数组的方便方式。
例如:
>> A = ;
>> B = ;
>> 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的列数相等才能合并);
>> 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的行数相等才能合并)
>> 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



页: [1]
查看完整版本: cat函数——创建多维数组