Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2024.0.0 - Русский


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

скаляр, вектор, матрица, многомерный cell-массив или многомерный массив структур.

Описание

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]. Квадратные скобки работают быстрее и гораздо предпочтительней в обоих случаях.

Когда входные массивы имеют неодинаковый тип данных, то применяются правила автоматического преобразования, подобные правилам [,] и [;], как описано на странице [brackets].

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 — изменение вектора или матрицы в матрицу иных размеров

История

ВерсияОписание
2023.1 Arrays of compatible types accepted, according to [,] and [;] transtyping rules.
Report an issue
<< Shape tests Манипуляции с матрицами circshift >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Oct 24 14:37:06 CEST 2023