cat

Конкатенация массивов

Описание

пример

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

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

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 в один столбец дат. Результатом является вектор 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 для входа таблицы или расписания.

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

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

  • Элементы 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