How to repeat a rectangular matrix in matlab?
Show older comments
How to repeat a rectangular matrix in matlab?
Not using loops, just matlab's build-in commands.
Thanks a lot!

Accepted Answer
More Answers (2)
Azzi Abdelmalek
on 24 Jul 2014
Edited: Azzi Abdelmalek
on 24 Jul 2014
A=[1 2 ; 3 4]
B=repmat(A,3,2)
3 Comments
Azzi Abdelmalek
on 24 Jul 2014
You didn't say anything about how do you want to shift your matrix? it's not just repeating a matrix.
rui
on 24 Jul 2014
Andrei Bobrov
on 24 Jul 2014
Edited: Andrei Bobrov
on 24 Jul 2014
for your case:
t = zeros(6,2);
out = [kron(eye(3),a(:,1:2)),t]+[t,kron(eye(3),a(:,3:4))];
variant
m = 3;
k=2;
s = size(a);
n = (m-1)*k+s(2);
m1 = m*s(1);
out = zeros(m1,n);
t = sub2ind([m1,n],1:s(1):m1,1:k:k*m);
t2 = bsxfun(@plus,(0:s(2)-1)*m1,(0:s(1)-1)');
out(bsxfun(@plus,t,t2(:))) = a(:,:,ones(m,1));
Categories
Find more on Mathematics in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!