在Matlab中将二维矢量转换为四维矢量
在matlab中是否可以将二维向量转换为四维向量 我可以创建二维向量,例如:在Matlab中将二维矢量转换为四维矢量,matlab,matrix,vector,Matlab,Matrix,Vector,在matlab中是否可以将二维向量转换为四维向量 我可以创建二维向量,例如: A = [[1 2];[3 4]] -->(code segment_1) 和四维向量一样 A = ones(2,3,4,8) -->(code segment_2) 是否可以创建一个4-D向量,就像我们可以使用代码_段_1创建2-D向量一样?(让我更清楚地说,A=[[12]、[34]、[56]、[78]、[9 10]、[11 12]]正在创建1x12矩阵) 我还看到我们使用重塑函数将k维矩阵转换为l
A = [[1 2];[3 4]] -->(code segment_1)
和四维向量一样
A = ones(2,3,4,8) -->(code segment_2)
是否可以创建一个4-D向量,就像我们可以使用代码_段_1创建2-D向量一样?(让我更清楚地说,A=[[12]、[34]、[56]、[78]、[9 10]、[11 12]]
正在创建1x12矩阵)
我还看到我们使用
重塑
函数将k维矩阵转换为l维矩阵,其中k>l。这基本上是缩小比例,但我们可以放大尺寸吗 您可以将二维矩阵重塑为4D数组,只要不更改元素数量:
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
从你的问题来看,你似乎对numpy有一些经验。Matlab没有为n
>2直接创建n-d数组的命令行,但它可以直接将任何2D或3D数组重塑为更高维数组。如果您想直接创建4D数组(无重塑
),则需要使用稍微复杂的语法,函数为:
A = cat(4, cat(3, [1 2],[3 4]), cat(3, [5 6],[7 8]), cat(3, [9 10],[11 12]));
您需要使用A(:,:,:,k)
符号,或者将1D
或2D
版本的输入重新整形为4D
重新整形
也可以“放大”。给它适当的尺寸谢谢你帮我解决我愚蠢的疑问。。当我实现一个玩具页面ranker时,我还使用了numpy模块。。