exponenta event banner

кошка

Конкатенатные массивы

Описание

пример

C = cat(dim,A,B) связывает B до конца A вдоль размера dim когда A и B иметь совместимые размеры (длины размеров совпадают, за исключением рабочего размера) dim).

пример

C = cat(dim,A1,A2,…,An) связывает A1, A2, … , An вдоль размера dim.

Можно использовать оператор квадратной скобки [] для конкатенации. Например, [A,B] или [A B] конкатенаты массивов A и B горизонтально, и [A; B] объединяет их по вертикали.

Примеры

свернуть все

Создайте и объедините две матрицы по вертикали, а затем по горизонтали.

A = ones(3)
A = 3×3

     1     1     1
     1     1     1
     1     1     1

B = zeros(3)
B = 3×3

     0     0     0
     0     0     0
     0     0     0

C1 = cat(1,A,B)
C1 = 6×3

     1     1     1
     1     1     1
     1     1     1
     0     0     0
     0     0     0
     0     0     0

C2 = cat(2,A,B)
C2 = 3×6

     1     1     1     0     0     0
     1     1     1     0     0     0
     1     1     1     0     0     0

Создайте два массива 3-D и соедините их вдоль третьего размера. Длины первого и второго размеров в результирующем массиве совпадают с соответствующими длинами во входных массивах, в то время как третий размер расширяется.

A = rand(2,3,4);
B = rand(2,3,5);
C = cat(3,A,B);
szC = size(C)
szC = 1×3

     2     3     9

Создайте таблицу и добавьте строку с помощью массива ячеек.

LastName = {'Sanchez';'Johnson';'Li';'Diaz'};
Age = [38;43;38;40];
T1 = table(LastName,Age)
T1=4×2 table
     LastName      Age
    ___________    ___

    {'Sanchez'}    38 
    {'Johnson'}    43 
    {'Li'     }    38 
    {'Diaz'   }    40 

Trow = {'Brown',49};
T2 = cat(1,T1,Trow)
T2=5×2 table
     LastName      Age
    ___________    ___

    {'Sanchez'}    38 
    {'Johnson'}    43 
    {'Li'     }    38 
    {'Diaz'   }    40 
    {'Brown'  }    49 

Объединение вектора символов даты, строковой даты и даты в один столбец дат. Результатом является вектор datetime.

chardate = '2016-03-24';
strdate = "2016-04-19";
t = datetime('2016-05-10','InputFormat','yyyy-MM-dd');
C = cat(1,chardate,strdate,t)
C = 3x1 datetime
   24-Mar-2016
   19-Apr-2016
   10-May-2016

Создайте массив ячеек, содержащий две матрицы, и объедините матрицы как по вертикали, так и по горизонтали.

M1 = [1 2; 3 4];
M2 = [5 6; 7 8];
A1 = {M1,M2};
Cvert = cat(1,A1{:})
Cvert = 4×2

     1     2
     3     4
     5     6
     7     8

Chorz = cat(2,A1{:})
Chorz = 2×4

     1     2     5     6
     3     4     7     8

Входные аргументы

свернуть все

Размерность для работы, заданная как целочисленный скаляр. Например, если A и B являются матрицами 2 на 2, то cat(1,A,B) объединяет вертикальное создание матрицы 4 на 2. cat(2,A,B) объединяет горизонтальное создание матрицы 2 на 4.

dim для ввода таблицы или расписания должно быть либо 1, либо 2.

Первый вход, заданный как скаляр, вектор, матрица, многомерный массив, таблица или расписание.

Второй вход, заданный как скаляр, вектор, матрица, многомерный массив, таблица или расписание.

  • Элементы B соединяются с концом первого входа вдоль рабочего размера. Размеры входных аргументов должны быть совместимыми. Например, если первый вход является матрицей размера 3 на 2, то B должен иметь 2 столбца для объединения по вертикали и 3 строки для объединения по горизонтали.

  • При конкатенации по горизонтали все входные данные таблицы должны иметь уникальные имена переменных. При наличии имена строк должны быть идентичными, за исключением порядка. Аналогично, все входные данные расписания должны иметь одно и то же время строки, а все столбцы должны иметь разные имена.

  • Можно объединить допустимые комбинации различных типов. Дополнительные сведения см. в разделе Допустимые комбинации непохожих классов.

Список входных данных, указанный как список массивов, разделенных запятыми, для конкатенации в указанном порядке.

  • Входные данные должны иметь совместимые размеры. Например, если A1 является вектором строки длиной m, тогда остальные входы должны иметь m столбцов для объединения по вертикали.

  • При конкатенации по горизонтали все входные данные таблицы должны иметь уникальные имена переменных. При наличии имена строк должны быть идентичными, за исключением порядка. Аналогично, все входные данные расписания должны иметь одно и то же время строки, а все столбцы должны иметь разные имена.

  • Можно объединить допустимые комбинации различных типов. Дополнительные сведения см. в разделе Допустимые комбинации непохожих классов.

Совет

  • Чтобы создать текст путем горизонтального объединения строк, символьных векторов или массивов ячеек символьных векторов, используйте strcat функция.

  • Чтобы создать один фрагмент разделенного текста из массива ячеек из символьных векторов или строкового массива, используйте команду strjoin функция.

Алгоритмы

При объединении пустого массива с непустым массивом cat пропускает пустой массив в выходных данных. Например, cat(2,[1 2],[]) возвращает вектор строки [1 2].

Если все входные аргументы пусты и имеют совместимые размеры, то cat возвращает пустой массив, размер которого равен размеру вывода, как если входные данные являются непустыми. Например, cat(2,zeros(0,1),zeros(0,2)) возвращает пустой массив 0 на 3.

Расширенные возможности

.
Представлен до R2006a