ハムスターに飼われる院生のブログ

自分用メモが中心のブログです。

デバッグ時によく使う自作関数

C++の話。
EigenのVectorXdとMatrixXdをよく利用する。
格納されている中身を確認する際に
毎回for文をまわすことが面倒に感じる。
したがって、以下の関数を作成した。

void cout_eig(MatrixXd mat) {
	for (int i = 0; i < mat.rows(); i++) {
		for (int j = 0; j < mat.cols(); j++) {
			std::cout << mat(i, j) << ",";
		}
		std::cout << endl;
	}
	return;
}
void cout_eig(VectorXd vec) {
	for (int i = 0; i < vec.size(); i++) {
		std::cout << vec(i) << ",";
	}
	std::cout << endl;
	return;
}

関数をオーバーロードしているので、MatrixXdでもVectorXdでも、
値を表示させたい変数をcout_eig()関数の引数に入れるだけで値を表示できる。