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