gpt4 book ai didi

matlab - 特征值将矩阵转换为向量

转载 作者:太空宇宙 更新时间:2023-11-03 19:22:38 28 4
gpt4 key购买 nike

在 MATLAB 中,下面的行将矩阵转换为向量。它将矩阵逐列展平为一个向量。

myvar(:)

我如何使用 Eigen 做到这一点?该解决方案应该适用于矩阵的任何维度。

MatrixXd A(3,2);
VectorXd B(6);
A << 1,2,3,4,5,6;
B << A.col(0), A.col(1);
//This isn't general enough to work on any size Matrix

最佳答案

Eigen 矩阵默认按列主顺序存储,因此您可以简单地使用 Eigen Maps 将数据逐列存储在数组中:

MatrixXd A(3,2);
A << 1,2,3,4,5,6;
VectorXd B(Map<VectorXd>(A.data(), A.cols()*A.rows()));

如果要数据逐行排序,需要先对矩阵进行转置:

MatrixXd A(3,2);
A << 1,2,3,4,5,6;
A.transposeInPlace();
VectorXd B(Map<VectorXd>(A.data(), A.cols()*A.rows()));

关于matlab - 特征值将矩阵转换为向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22881768/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com