プログラミング(programming)/Eigen
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
] [
Japanese
/
English
]
研究について
研究の概要
論文発表
メディア
メンバー
教員
大学院生
学部生
OB
リンク
リンク集
授業
コンピュータプログラミング基礎II
機械知能システム工学特別講義I
機械システム工学特論(MORE SENSE特論)
内部用
物品管理(registries)
外部ソフトウェア
PC環境設定
買い物
プリンタ設定
定例研究会(weekly)
研究発表会(monthly)
閲覧回数順
開始行:
[[MizuuchiLab]]
-説明
--Eigen is a C++ template library for linear algebra: mat...
--Eigen is Free Software. It is licensed under the LGPL3+...
--Copyright © 2007 Free Software Foundation, Inc.
-インストール方法(以下のいずれか):
--パッケージをインストールする場合
sudo apt-get install libeigen3-dev
--- /usr/include/以下に eigen3/ ができる
--- /usr/include/にはパッケージマネージャが自動で入れてく...
--- 手動ビルドで入れる場合は/usr/local/include/に入れるのだ
--ソースをダウンロードしてコンパイルする(=手動ビルドす...
cd /usr/local/src/
wget -c --no-check-certificate http://bitbucket.org/eige...
tar zxvf 3.0.5.tar.gz
cd eigen-eigen-6e7488e20373
sudo cp -r Eigen /usr/local/include #Cygwinではsudo無し...
-使う方法:
--プログラムの前に
#include "Eigen/Core"
#include "Eigen/LU"
using namespace Eigen;
を書くと、Eigenを使える。
--コンパイル時に -I/usr/include/eigen3 をつけてコンパイル...
--使用例
Vector3d A(1,2,3); 列ベクトルA=(1,2,3)を定義する
RowVector3d A(1,2,3); 行ベクトルA=(1,2,3)を定義する
Matrix4f T 4x4行列Tを定義する
MatrixXf P(1,6) 1x6行列Pを定義する
P<<1,2,3,4,5,6 定義したPに元素を入力する
B.transpose(); Bの転置行列
B.transposeInPlace(); Bの転置行列をBに代入する
--内積(返り値はdouble型になる)
A.dot(B); または
A.transpose()*B; A, Bを行列で定義している場合はこちら...
sqrt(A.transpose()*A); とすればAのノルムが出る
--逆行列
FullPivLU< MatrixXf > lu(A);
MatrixXf B=lu.inverse(); Aの逆行列Bを求める
最近は
A.inverse();
で普通に逆行列が求まるようだ。
--参照
~http://eigen.tuxfamily.org/dox/
- 使う方法(Visual studioの場合):
-- 1.[[HP>http://eigen.tuxfamily.org/index.php?title=Ma...
-- 2.解答する
--- C:\dev\に解答して、解答フォルダの名前をeigen-3.2.7と...
-- 3.パスの設定を行う
--- C:\dev\eigen-3.2.7\Eigen を環境変数のPathに追加
-- 4.Visual studioにインクルードパスを設定する
--- 構成プロパティ=>C/C++=>全般の「追加のインクルード...
--- C:\dev\eigen-3.2.7 を追加
-- 5.以下のコードを書いたファイルをコンパイルして何か出...
#include <iostream>
#include <Eigen/Dense>
int _tmain(int argc, _TCHAR* argv[])
{
Eigen::MatrixXd A(9, 9);
std::cout << A;
return 0;
}
--- #includeの順番を変えるとコンパイルが通らないことがある
終了行:
[[MizuuchiLab]]
-説明
--Eigen is a C++ template library for linear algebra: mat...
--Eigen is Free Software. It is licensed under the LGPL3+...
--Copyright © 2007 Free Software Foundation, Inc.
-インストール方法(以下のいずれか):
--パッケージをインストールする場合
sudo apt-get install libeigen3-dev
--- /usr/include/以下に eigen3/ ができる
--- /usr/include/にはパッケージマネージャが自動で入れてく...
--- 手動ビルドで入れる場合は/usr/local/include/に入れるのだ
--ソースをダウンロードしてコンパイルする(=手動ビルドす...
cd /usr/local/src/
wget -c --no-check-certificate http://bitbucket.org/eige...
tar zxvf 3.0.5.tar.gz
cd eigen-eigen-6e7488e20373
sudo cp -r Eigen /usr/local/include #Cygwinではsudo無し...
-使う方法:
--プログラムの前に
#include "Eigen/Core"
#include "Eigen/LU"
using namespace Eigen;
を書くと、Eigenを使える。
--コンパイル時に -I/usr/include/eigen3 をつけてコンパイル...
--使用例
Vector3d A(1,2,3); 列ベクトルA=(1,2,3)を定義する
RowVector3d A(1,2,3); 行ベクトルA=(1,2,3)を定義する
Matrix4f T 4x4行列Tを定義する
MatrixXf P(1,6) 1x6行列Pを定義する
P<<1,2,3,4,5,6 定義したPに元素を入力する
B.transpose(); Bの転置行列
B.transposeInPlace(); Bの転置行列をBに代入する
--内積(返り値はdouble型になる)
A.dot(B); または
A.transpose()*B; A, Bを行列で定義している場合はこちら...
sqrt(A.transpose()*A); とすればAのノルムが出る
--逆行列
FullPivLU< MatrixXf > lu(A);
MatrixXf B=lu.inverse(); Aの逆行列Bを求める
最近は
A.inverse();
で普通に逆行列が求まるようだ。
--参照
~http://eigen.tuxfamily.org/dox/
- 使う方法(Visual studioの場合):
-- 1.[[HP>http://eigen.tuxfamily.org/index.php?title=Ma...
-- 2.解答する
--- C:\dev\に解答して、解答フォルダの名前をeigen-3.2.7と...
-- 3.パスの設定を行う
--- C:\dev\eigen-3.2.7\Eigen を環境変数のPathに追加
-- 4.Visual studioにインクルードパスを設定する
--- 構成プロパティ=>C/C++=>全般の「追加のインクルード...
--- C:\dev\eigen-3.2.7 を追加
-- 5.以下のコードを書いたファイルをコンパイルして何か出...
#include <iostream>
#include <Eigen/Dense>
int _tmain(int argc, _TCHAR* argv[])
{
Eigen::MatrixXd A(9, 9);
std::cout << A;
return 0;
}
--- #includeの順番を変えるとコンパイルが通らないことがある
ページ名: