matlab 如何把一维数组扩展为重复的三维数组

如题:matlab 如何把一维数组扩展为重复的三维数组。 例如:a=[1,2,3],要得到2×3×3数组:
b=
1,1,1
1,1,1

2,2,2
2,2,2

3,3,3
3,3,3
即把a中每个元素扩展为2×3数组,尽量避免使用循环,有没有可用的函数或者方法实现这种转换

第1个回答  2013-05-28
a=[1,2,3]

b=repmat(shiftdim(a,-1),2,3)本回答被提问者采纳
第2个回答  2013-05-28
c = permute(a,[3,1,2]);
b = repmat(c,[2,3,1]);
第3个回答  2013-05-28
a=[1 2 3]
b=[a(1) a(1) a(1); a(1) a(1) a(1);a(2) a(2) a(2);a(2) a(2) a(2);a(3) a(3) a(3);a(3) a(3) a(3)]