Eigen 特征动态尺寸矩阵垂直/水平邻域?
我目前正在从事一个项目,需要能够创建矩阵,例如:Eigen 特征动态尺寸矩阵垂直/水平邻域?,eigen,linspace,Eigen,Linspace,我目前正在从事一个项目,需要能够创建矩阵,例如: MatrixXi lin_spaced_horizontaly = 0 1 2 3 4 ... ncols 0 1 2 3 4 ... ncols 0 1 2 3 4 ... ncols MatrixXi lin_spaced_verticaly = 0 0 0 1 1 1 2 2 2 3 3 3 4 4 4 . . . nrows nrows nrows 目前我正在尝试这样的事情: Eigen::VectorXi v_lin
MatrixXi lin_spaced_horizontaly =
0 1 2 3 4 ... ncols
0 1 2 3 4 ... ncols
0 1 2 3 4 ... ncols
MatrixXi lin_spaced_verticaly =
0 0 0
1 1 1
2 2 2
3 3 3
4 4 4
. . .
nrows nrows nrows
目前我正在尝试这样的事情:
Eigen::VectorXi v_lin_vec = Eigen::VectorXi::LinSpaced(nrows_, 0, nrows_).transpose
Eigen::MatrixXi v_lin_matrix (nrows_, ncols_);
for (auto i = 0; i<ncols_; i++)
v_lin_matrix << v_lin_vec;
Eigen::VectorXi h_lin_vec = Eigen::VectorXi::LinSpaced(ncols_, 0, ncols_)
Eigen::MatrixXi h_lin_matrix (nrows_, ncols_);
for (auto i = 0; i<ncols_; i++)
h_lin_matrix << h_lin_vec;
提前谢谢 您可以像这样使用
.rowwise().replicate(ncols)
和.colwise().replicate(nrows)
:
Eigen::MatrixXi v_lin_matrix = Eigen::VectorXi::LinSpaced(nrows_, 0, nrows_)
.rowwise().replicate(ncols_);
Eigen::MatrixXi h_lin_matrix = Eigen::RowVectorXi::LinSpaced(ncols_, 0, ncols_)
.colwise().replicate(nrows_);
或者:
Eigen::MatrixXi v_lin_matrix = Eigen::VectorXi::LinSpaced(nrows_, 0, nrows_)
.replicate(1,ncols_);
Eigen::MatrixXi h_lin_matrix = Eigen::RowVectorXi::LinSpaced(ncols_, 0, ncols_)
.replicate(nrows_,1);
关于
的使用,您可以使用.rowwise().replicate(ncols_41;
和.colwise().replicate(nrows_41;
如下:
Eigen::MatrixXi v_lin_matrix = Eigen::VectorXi::LinSpaced(nrows_, 0, nrows_)
.rowwise().replicate(ncols_);
Eigen::MatrixXi h_lin_matrix = Eigen::RowVectorXi::LinSpaced(ncols_, 0, ncols_)
.colwise().replicate(nrows_);
或者:
Eigen::MatrixXi v_lin_matrix = Eigen::VectorXi::LinSpaced(nrows_, 0, nrows_)
.replicate(1,ncols_);
Eigen::MatrixXi h_lin_matrix = Eigen::RowVectorXi::LinSpaced(ncols_, 0, ncols_)
.replicate(nrows_,1);
关于您对的使用,如果这解决了您的问题,您可以接受此答案(无需写“谢谢”评论)。如果这解决了您的问题,您可以接受此答案(无需写“谢谢”评论)