在Matlab中将2-D向量转换为4-D向量

时间:2015-04-20 17:15:52

标签: matlab matrix vector

是否有可能将2-D矢量转换为matlab中的4-D矢量?

我可以创建二维矢量,例如:

A = [[1 2];[3 4]] -->(code segment_1)

和4-D载体如

A = ones(2,3,4,8)  -->(code segment_2)

是否有可能创建一个4-D向量,就像我们如何使用code_segment_1创建2-D向量一样? (让我更清楚一点,A=[[[1 2],[3 4]],[[5 6],[7 8]],[[9 10],[11 12]]]正在创建一个1x12矩阵)

我也看到我们使用reshape函数将k维矩阵转换为l维矩阵,其中k> 1。湖这基本上是缩小比例,但我们可以升级尺寸吗?

2 个答案:

答案 0 :(得分:3)

只要不更改元素数量,您就可以将{<1}} 2D 矩阵放入4D数组中:

reshape

从您的问题看来,您似乎对numpy有一些经验。 Matlab没有为 oneD = 1:12; %// creare 1D vector twoD = reshape( oneD, [6 2] ); %// reshape into a 2D matrix threeD = reshape( oneD, [2 3 2] ); %// now you have a 3D array fourD = reshape( oneD, [1 2 3 2] ); %// 4D with a leading singleton dimension &gt; 2创建n-d数组的直接命令行,但它可以直接将n任何2D或3D数组转换为更高维的数组。

答案 1 :(得分:1)

如果你想直接创建4D数组(没有reshape),你需要使用cat函数稍微麻烦的语法:

A = cat(4, cat(3, [1 2],[3 4]), cat(3, [5 6],[7 8]), cat(3, [9 10],[11 12]));