creating multi-dimensional arrays from vectors

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.

 Réponse acceptée

Geoff
Geoff le 27 Mar 2012
[~,~,b] = ndgrid([0 0], [0 0], a)

2 commentaires

Pal
Pal le 27 Mar 2012
Thanks! What are the tilde symbols? I have never seen them in Matlab syntax.
Geoff
Geoff le 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.

Connectez-vous pour commenter.

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by