Eigenの関数を機能単位で整理(随時更新)
Eigen::MatrixXd mat;
function | 概要 |
---|---|
Eigen::MatrixXd::Random(r, c) | 初期化:r×c行列、値が乱数 |
Eigen::MatrixXd::Constant(r, c, v) | 初期化:r×c行列、値がv |
Eigen::MatrixXd::Zero(r, c) | 初期化:r×c行列、値が0 |
Eigen::MatrixXd::Ones(r, c) | 初期化:r×c行列、値が1 |
mat.resize(r, c) | 自己変換:r×c行列にリサイズ※値は0クリア |
mat.conservativeResize(r, c) | 自己変換:r×c行列にリサイズ※値は保持 変更しない行/列はEigen::NoChange |
mat.transposeInPlace() | 自己変換:転置行列 |
mat.adjointInPlace() | 自己変換:随伴行列 |
mat.rows() | 確認:行数 |
mat.cols() | 確認:列数 |
mat(ii, jj) | 参照:ii行, jj列 |
mat.row(ii) | 参照:ii行 |
mat.col(jj) | 参照:jj列 |
mat.block(ii, jj, r, c) | 参照:ii行, jj列からrxc行列 |
mat.topLeftCorner(r, c) | 参照:左上r×c行列 |
mat.topRightCorner(r, c) | 参照:右上r×c行列 |
mat.bottomLeftCorner(r, c) | 参照:左下r×c行列 |
mat.bottomRightCorner(r, c) | 参照:右下r×c行列 |
mat.topRows(r) | 参照:上からr行 |
mat.bottomRows(r) | 参照:下からr行 |
mat.middleRows(ii, n) | 参照:ii行目からn行 |
mat.leftCols(c) | 参照:左からc列 |
mat.rightCols(c) | 参照:右からc列 |
mat.middleCols(jj, n) | 参照:jj列目からn列 |
mat.transpose() | 転置行列 |
mat.conjugate() | 複素共役行列 |
mat.adjoint() | 随伴行列 |
mat.cwiseAbs() | 係数毎の計算:絶対値 |
mat.cwiseAbs2() | 係数毎の計算:絶対値の二乗 |
mat.cwizeInverse() | 係数毎の計算:逆数 |
mat.cwizeSqrt() | 係数毎の計算:平方根 |
mat.cwizeEqual(mat2) | 係数毎の計算:== |
mat.cwizeNotEqual(mat2) | 係数毎の計算:!= |
mat.cwizeMin(mat2) | 係数毎の計算:小さな値 |
mat.cwizeMax(mat2) | 係数毎の計算:大きな値 |
mat.cwizeProduct(mat2) | 係数毎の計算:掛け算, (mat1.array() * mat2.array()).matrix()と等価 |
mat.cwizeQuotient(mat2) | 係数毎の計算:割り算 |
mat.array() | Eigen::ArrayXd型 |
Eigen::VectorXd vec;
function | 概要 |
---|---|
Eigen::VectorXd::LinSpaced(size, low, high) | 初期化 low~highをsizeで分割した連続値 |
vec.head(num) | |
vec.tail(num) | |
vec.segment(i, num) | |
vec.tail(num) |
Eigen::ArrayXd arr;
function | 概要 |
---|---|
arr.sin() | 三角関数:sine(要素が90の時1) |
arr.cos() | 三角関数:cosine(要素が90の時0) |