C ++犰狳重塑只有一维大小的矩阵
Posted
技术标签:
【中文标题】C ++犰狳重塑只有一维大小的矩阵【英文标题】:C++ Armadillo reshape a matrix with only one dimension size 【发布时间】:2017-08-08 16:14:36 【问题描述】:使用Armadillo,当我只指定一个维度大小时如何重塑矩阵?
在Matlab documentation 中有这样的功能示例:
将 6×6 幻方矩阵重塑为只有 3 列。指定 [] 作为第一个维度大小以进行整形 自动计算适当的行数。
A = magic(6); B = reshape(A,[],3);
结果是一个 12×3 矩阵,它保持相同数量的 元素 (36) 作为原始 6×6 矩阵。 B中的元素也 保持从 A 开始的列顺序。
犰狳如何做到这一点?
【问题讨论】:
我想我只需要使用第一个矩阵的大小/形状和第二个矩阵中维度的已知大小进行计算。 【参考方案1】:您可以使用.size()
获取矩阵的元素总数并自己计算维度。
示例:
B = reshape(A, A.size()/3, 3);
【讨论】:
以上是关于C ++犰狳重塑只有一维大小的矩阵的主要内容,如果未能解决你的问题,请参考以下文章