を[OK]を、たとえばあなたは3x3の行列を持っていると言う:
m = [3 -1 1; 2.5 1.5 6; 4 7 1]
を
、あなたはM行列から、次の行を抽出したいと言う:
[0 2], // row 0 and row 2
基本的に次の行列を与える:ここで
new_extracted_matrix = [3 -1 1; 4 7 1] // row 0 and row 2 of matrix m
主なものは、[0-2]の内容を有するベクトルvを作成でき、である、我々は、行列Mから次の行インデックスを抽出することになることを意味します。ここ は私がやったことです:
#include <iostream>
#include <Eigen/Dense>
using namespace Eigen;
using namespace std;
int main()
{
Matrix3f m;
m(0,0) = 3;
m(0,1) = -1;
m(0,2) = 1;
m(1,0) = 2.5;
m(1,1) = m(1,0) + m(0,1);
m(1,2) = 6;
m(2,0) = 4;
m(2,1) = 7;
m(2,2) = 1;
std::cout << "Here is the matrix m:\n" << m << std::endl; // Creating a random 3x3 matrix
VectorXf v(2);
v(0) = 0; // Extracting row 0
v(1) = 2; // Extracting row 2
MatrixXf r(1,v.size());
for (int i=0;i<v.size();i++)
{
r.col(i) << v(i); // Creating indice vector
}
cout << "The extracted row indicies of above matrix: " << endl << r << endl;
MatrixXf N = MatrixXf::Zero(r.size(),m.cols());
for (int z=0;z<r.size();z++)
{
N.row(z) = m.row(r(z));
}
cout << "Extracted rows of given matrix: " << endl << N << endl;
}
これは出力以下の私たちを与えるだろう:
をここで行列mである: [3 -1 1。 2.5 1.5 6; 4 7 1]
上記マトリックスの抽出された行なインデックス: [0 2]
抽出与えられた行列の行: [3 -1 1。 4 7 1]