Копирование массива
B = repmat(A,n)
B = repmat(A,r1,...,rN)
B = repmat(A,r)
возвращает массив, содержащий копии 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)
.
Чтобы создать блочные массивы путем формирования продукта тензора входного параметра с массивом из единиц, используйте 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)) |