是否有可能将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。湖这基本上是缩小比例,但我们可以升级尺寸吗?
答案 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]));