creating multi-dimensional arrays from vectors

6 visualizzazioni (ultimi 30 giorni)
Hi,
I want to create a multi-dimensional array 'b' from a vector 'a' as the following example:
a =
1 2 3 4
b(:,:,1) =
1 1
1 1
b(:,:,2) =
2 2
2 2
b(:,:,3) =
3 3
3 3
b(:,:,4) =
4 4
4 4
Thus I want to copy each entry of 'a' as m by n (2 by 2 in the example) size matrices onto each level of 'b' along the third dimension. I need to avoid element-wise operations and be as fast as possible.
I would appreciate any help.
Thank you.

Risposta accettata

Geoff
Geoff il 27 Mar 2012
[~,~,b] = ndgrid([0 0], [0 0], a)
  2 Commenti
Pal
Pal il 27 Mar 2012
Thanks! What are the tilde symbols? I have never seen them in Matlab syntax.
Geoff
Geoff il 27 Mar 2012
They are a placeholder, meaning we don't care about a particular return value. It's the way to get the third return value into 'b' without assigning the first and second return values to a variable.

Accedi per commentare.

Più risposte (1)

James Tursa
James Tursa il 27 Mar 2012

Categorie

Scopri di più su Resizing and Reshaping 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