gpt4 book ai didi

c++ - conservativeResize() 新值的值为零

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:07:21 31 4
gpt4 key购买 nike

如何在调整矩阵大小后将新值设置为零?调整矩阵大小后,新值被设置为垃圾值而不是至少设置为零,这真的很奇怪。

N = 0;
Eigen::MatrixXd CO;
CO.setZero(3+3*N, 3+3*N);
std::cout << CO << std::endl << std::endl;
Nt = 1;
CO.conservativeResize(3+3*Nt,3+3*Nt);
std::cout << CO << std::endl << std::endl;

结果

enter image description here

最佳答案

我已经使用 conservativeResizeLike() 解决了这个问题

int Nt = 0;
Eigen::MatrixXd CO;
CO.setOnes(3+3*Nt, 3+3*Nt);
std::cout << CO << std::endl << std::endl;
Nt = 1;
CO.conservativeResizeLike(Eigen::MatrixXd::Zero(3+3*Nt,3+3*Nt));
std::cout << CO << std::endl << std::endl;

结果

enter image description here

此外,我发现您可以将它们设置为 ones Eigen::MatrixXd::Ones(3+3*Nt,3+3*Nt) 或 identity Eigen::MatrixXd::Identity(3+3*Nt,3+3*Nt)

为了身份

enter image description here

关于c++ - conservativeResize() 新值的值为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25317687/

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