repmat

Копирование массива

Описание

пример

B = repmat(A,n) возвращает массив, содержащий n копии A в размерностях строки и столбца. Размер B size(A)*n когда A матрица.

пример

B = repmat(A,r1,...,rN) задает список скаляров, r1,..,rN, это описывает как копии A располагаются в каждой размерности. Когда A имеет N размерности, размер B size(A).*[r1...rN]. Например, repmat([1 2; 3 4],2,3) возвращается 4 6 матрица.

пример

B = repmat(A,r) задает схему повторения с вектором-строкой r. Например, repmat(A,[2 3]) возвращает тот же результат как repmat(A,2,3).

Примеры

свернуть все

Создайте 3-на-2 матрицу, элементы которой содержат значение 10.

A = repmat(10,3,2)
A = 3×2

    10    10
    10    10
    10    10

Повторные копии матрицы в расположение блока 2 на 2.

A = diag([100 200 300])
A = 3×3

   100     0     0
     0   200     0
     0     0   300

B = repmat(A,2)
B = 6×6

   100     0     0   100     0     0
     0   200     0     0   200     0
     0     0   300     0     0   300
   100     0     0   100     0     0
     0   200     0     0   200     0
     0     0   300     0     0   300

Повторные копии матрицы в 2 3 блокируют расположение.

A = diag([100 200 300])
A = 3×3

   100     0     0
     0   200     0
     0     0   300

B = repmat(A,2,3)
B = 6×9

   100     0     0   100     0     0   100     0     0
     0   200     0     0   200     0     0   200     0
     0     0   300     0     0   300     0     0   300
   100     0     0   100     0     0   100     0     0
     0   200     0     0   200     0     0   200     0
     0     0   300     0     0   300     0     0   300

Повторные копии матрицы в 2 3 2 расположениями блока.

A = [1 2; 3 4]
A = 2×2

     1     2
     3     4

B = repmat(A,[2 3 2])
B = 
B(:,:,1) =

     1     2     1     2     1     2
     3     4     3     4     3     4
     1     2     1     2     1     2
     3     4     3     4     3     4


B(:,:,2) =

     1     2     1     2     1     2
     3     4     3     4     3     4
     1     2     1     2     1     2
     3     4     3     4     3     4

Стек Vertically вектор-строка четыре раза.

A = 1:4;
B = repmat(A,4,1)
B = 4×4

     1     2     3     4
     1     2     3     4
     1     2     3     4
     1     2     3     4

Стек Horizontally вектор-столбец четыре раза.

A = (1:3)';  
B = repmat(A,1,4)
B = 3×4

     1     1     1     1
     2     2     2     2
     3     3     3     3

Составьте таблицу с переменными Age и Height.

A = table([39; 26],[70; 63],'VariableNames',{'Age' 'Height'})
A=2×2 table
    Age    Height
    ___    ______

    39       70  
    26       63  

Повторные копии таблицы в 2 3 блокируют формат.

B = repmat(A,2,3)
B=4×6 table
    Age    Height    Age_1    Height_1    Age_2    Height_2
    ___    ______    _____    ________    _____    ________

    39       70       39         70        39         70   
    26       63       26         63        26         63   
    39       70       39         70        39         70   
    26       63       26         63        26         63   

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

Входные параметры

свернуть все

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

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | struct | table | cell
Поддержка комплексного числа: Да

Число раз, чтобы повторить входной массив в размерностях строки и столбца, заданных как целочисленное значение. Если n 0 или отрицательный, результатом является пустой массив.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Факторы повторения для каждой размерности, заданной в качестве отдельных аргументов целочисленных значений. Если фактором повторения является 0 или отрицательный, результатом является пустой массив.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Вектор факторов повторения для каждой размерности, заданной как вектор-строка из целочисленных значений. Если любое значение в r 0 или отрицательный, результатом является пустой массив.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Советы

  • Чтобы создать блочные массивы путем формирования продукта тензора входа с массивом из единиц, используйте kron. Например, чтобы сложить вектор-строку A = 1:3 четыре раза вертикально, можно использовать B = kron(A,ones(4,1)).

  • Чтобы создать блочные массивы и выполнить бинарную операцию в одной передаче, используйте bsxfun. В некоторых случаях, bsxfun обеспечивает более простое и больше эффективного решения памяти. Например, чтобы добавить векторы A = 1:5 и B = (1:10)' чтобы произвести 10 5 массив, используйте bsxfun(@plus,A,B) вместо repmat(A,10,1) + repmat(B,1,5).

  • Когда A скаляр определенного типа, можно использовать другие функции, чтобы получить тот же результат как repmat.

    Синтаксис repmatЭквивалентная альтернатива
    repmat(NaN,m,n)NaN(m,n)
    repmat(single(inf),m,n)inf(m,n,'single')
    repmat(int8(0),m,n)zeros(m,n,'int8')
    repmat(uint32(1),m,n)ones(m,n,'uint32')
    repmat(eps,m,n)eps(ones(m,n))

Вопросы совместимости

развернуть все

Поведение изменяется в R2019b

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

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

| | | | |

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

Для просмотра документации необходимо авторизоваться на сайте