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

Вертикально сложите вектор-строку четыре раза.

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

Горизонтально сложите вектор-столбец четыре раза.

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 | datetime | duration | calendarDuration | categorical | 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

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

..

Генерация HDL-кода
Сгенерируйте Verilog и VHDL код для FPGA и ASIC проектов с использованием HDL- Coder™.

См. также

| | | | |

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