cat конкатенация нескольких массивов

## Синтаксис

    y = cat(dim, A1, A2,...,An)

## Аргументы

dim

  положительный вещественный скаляр.

A1,A2,..An

  скаляры, векторы, матрицы или многомерные массивы или cell-массивы. A1,A2,...,An должны быть одинакового размера (за исключением номера размерности `dim`). `size(A1,i)=size(A2,i)=...=size(An,i)` для `i`, отличных от `dim`, а `size(A1,dim), size(A2,dim),..., size(An,dim)` могут различаться.

y

  скаляр, вектор, матрица или многомерный массив того же типа, что и `A1, A2,..., An`.

## Описание

`y=cat(dim,A1,A2,...,An) :``y` является результатом конкатенации входных аргументов `A1, A2,..., An`.

`cat(1, A1, A2, A3)` эквивалентно `[A1 ; A2 ; A3]`. `cat(2, A1, A2, A3)` эквивалентно `[A1 A2 A3]`. Квадратные скобки работают быстрее и гораздо предпочтительней в обоих случаях.

`cat()` полезна главным образом для `dim > 2`, чтобы построить гиперматрицу или cell-гипермассив.

## Примеры

Пример №1: построение вектора вдоль размерности №3

    cat(3, 4, -1, 3)

    --> cat(3, 4, -1, 3)
     ans  =
    (:,:,1)
       4.
    (:,:,2)
      -1.
    (:,:,3)
       3.

Пример №2: Построение матрицы текста размером size(1,3,2):

    cat(3, ["a" "aa" "aaa"], ["b" "bb" "bbb"])

    --> cat(3, ["a" "aa" "aaa"], ["b" "bb" "bbb"])
     ans  =
    (:,:,1)
    !a  aa  aaa  !
    (:,:,2)
    !b  bb  bbb  !

Пример №3: Упаковка отдельных слоёв R G B в мини-картинку RGB:

    R = uint8(grand(2,4,"uin",0,255))
    G = uint8(grand(2,4,"uin",0,255))
    B = uint8(grand(2,4,"uin",0,255))
    cat(3, R, G, B)

    --> R = uint8(grand(2,4,"uin",0,255))
     R  =
      142    8   11  234
      191  249  252   51

    --> G = uint8(grand(2,4,"uin",0,255))
     G  =
      255  246  104  89
      152   71  112  17

    --> B = uint8(grand(2,4,"uin",0,255))
     B  =
      170  182  39  197
      115  108  16   51

    --> cat(3, R, G, B)
     ans  =
    (:,:,1)
      142    8   11  234
      191  249  252   51
    (:,:,2)
      255  246  104  89
      152   71  112  17
    (:,:,3)
      170  182  39  197
      115  108  16   51

Пример №4: Построение cell-гипермассива:

    A1 = {%T   "abc" ; (1-%z)^2,  %pi}
    A2 = {%s^2, gda(); %F, list(-5, "hello")}
    cat(3, A1, A2)

    --> A1 = {%T   "abc" ; (1-%z)^2,  %pi}
     A1  =
      [1x1 boolean   ]  [1x1 string  ]
      [1x1 polynomial]  [1x1 constant]

    --> A2 = {%s^2, gda(); %F, list(-5, "hello")}
     A2  =
      [1x1 polynomial]  [1x1 handle]
      [1x1 boolean   ]  [    list  ]

    --> cat(3, A1, A2)
     ans  =
    (:,:,1)
      [1x1 boolean   ]  [1x1 string  ]
      [1x1 polynomial]  [1x1 constant]

    (:,:,2)
      [1x1 polynomial]  [1x1 handle]
      [1x1 boolean   ]  [    list  ]

## Смотрите также

- квадратные скобки [..]
- lstcat
- permute
- matrix