Creating a N-Dimentional matrix from a 2 Dimentional matrix

1 visualizzazione (ultimi 30 giorni)
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,

Risposta accettata

Honglei Chen
Honglei Chen il 11 Lug 2012
a = [1 2 ;3 4]
b = reshape(repmat(a(:),1,100),[size(a) 100]);
  1 Commento
Jalali
Jalali il 11 Lug 2012
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]);

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by