假设我有一个向量
据我所知,可以通过首先使用 reshape
如果可能,最好能够轻松地在行主序和列主序结果之间进行更改的解决方案。
V
,我想将这个向量转换成多个 m x n
矩阵,或者从这个向量 V 获取多个 m x n
矩阵。最基本的例子是:将 V = collect(1:75)
转换为 3 个 5x5
矩阵。据我所知,可以通过首先使用 reshape
reshape(V, 5, :)
,然后循环遍历它来完成此操作。在 Julia 中是否有更好的方法而不使用循环?如果可能,最好能够轻松地在行主序和列主序结果之间进行更改的解决方案。
reshape(1:25, ...)
等)还是跨步(strided)?collect(eachslice(reshape(V, 3,5, 5), dims = 1))
可以得到所需的形状,但可能不是你想要的。 - phipsgablertranspose
可以将列优先的数组转换为表示行优先数组的视图,但这并不等同于直接生成一个行优先数组。 - BatWannaBecollect(eachslice(reshape(V, 5,5,:); dims=3))
吗? - DNFreshape(V, 5, 5, :)
基本上就是我想要的。我在 @NaphatAmundsen 的回答下发了一些后续问题。此外,transpose
和permutedims
有什么区别(我迄今为止都是用它们来在列主序和行主序之间切换)? - Jessica Nowak