exponenta event banner

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(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 с использованием Coder™ HDL.

См. также

| | | | |

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