将矢量转换为第三维

时间:2012-03-08 13:59:10

标签: matlab

给定一个向量v = [1 2 3 4 5 6]如何将其转换为:

v = 
    v(:,:,1) =  1
    v(:,:,2) =  2
    v(:,:,3) =  3
    v(:,:,4) =  4
    v(:,:,5) =  5
    v(:,:,6) =  6

即,在第二个(行)和第三个维度之间进行转置?

2 个答案:

答案 0 :(得分:6)

答案是使用permute命令:

permute([1 2 3 4 5 6], [3 1 2])

它接受不存在的维度:第二个参数指定使用第三个现有维度(无)交换第一个现有维度,这会在结果中创建“单例”第一维。

答案 1 :(得分:3)

您还可以重塑:

reshape([1 2 3 4 5],1,1,[])

编辑(回应评论):实际上,它确实:


>> reshape([1 2 3 4 5],1,1,[])

ans(:,:,1) =

     1


ans(:,:,2) =

     2


ans(:,:,3) =

     3


ans(:,:,4) =

     4


ans(:,:,5) =

     5