Creating a N-Dimentional matrix from a 2 Dimentional matrix

Let's assume I have a as [1 2;3 4]. I need to create b to be 2-by-2-by-100 as follows: b(:,:,1)=[1 2;3 4] . . b(:,:,100)=[1 2;3 4]
I know that function 'cat' works but it's required to repeat the [1 2;3 4] hundred times which is not applicable. Which function should I use here?
Thanks,

 Accepted Answer

a = [1 2 ;3 4]
b = reshape(repmat(a(:),1,100),[size(a) 100]);

1 Comment

Thanks!
How about this case:
I need to create b as 100-by-10-by16 based on a=[1:16]
The following code works, but do you have any simpler idea?
q=repmat(a,[100 1]);
w=reshape(repmat(q(:),1,10),[ size(q) 10]);
b=permute(w,[1 3 2]);

Sign in to comment.

More Answers (0)

Categories

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!