Julia语言如何实现向量与矩阵转换及指定维度矩阵还原
Julia中vec展平得到的向量还原为原矩阵的方法
Julia的vec()按列优先规则展平矩阵,整个过程不会改动元素的存储顺序,只要用reshape()指定原矩阵的行列维度,就能直接把向量还原成展平前的矩阵。
- 还原2×3 Int64矩阵的代码如下:
# 复现展平操作,得到向量c c = vec([1 2 3; 4 5 6]) # 指定维度为2行3列,完成还原 origin_mat = reshape(c, 2, 3)
运行后得到的结果和目标完全一致:
2×3 Matrix{Int64}: 1 2 3 4 5 6
- 如果你不希望后续修改还原后的矩阵时联动改动原向量c,可以加
copy()生成独立的内存副本:
origin_mat = copy(reshape(c, 2, 3))
踩坑提示:传入
reshape的维度顺序必须和原矩阵匹配,这个案例里原矩阵是2行3列,所以传参是2,3;如果误写为3,2,会得到3行2列、元素错位的错误结果。
内容的提问来源于stack exchange,提问作者SwFly
相关产品推荐
相关产品推荐

