creating multi-dimensional arrays from vectors

3 次查看(过去 30 天)
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.

采纳的回答

Geoff
Geoff 2012-3-27
[~,~,b] = ndgrid([0 0], [0 0], a)
  2 个评论
Pal
Pal 2012-3-27
Thanks! What are the tilde symbols? I have never seen them in Matlab syntax.
Geoff
Geoff 2012-3-27
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.

请先登录,再进行评论。

更多回答(1 个)

James Tursa
James Tursa 2012-3-27

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by