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) |