Mat_类模板

先来段代码感受一下

	Mat C = (Mat_<double>(3, 3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);
	Mat D = (Mat_<double>(3, 3) << 1, 2, 3, 4, 6,7, 8, 9, 10);
	cout << "C = " << endl << " " << C << endl << endl;
	cout << "D = " << endl << " " << D << endl << endl;
	cout << "C.at<double>(1,2) = " << endl << " " << C.at<double>(1,2) << endl << endl;
	D.at<double>(1, 2) = 66;
	cout << "D1 = " << endl << " " << D << endl << endl;


Mat_类一般应用于矩阵(matrix)的运算。

Mat_类继承自Mat类,对数据类型更加灵活,可定义为Mat_<_Tp>的矩阵形式

    template<typename _Tp> class Mat_ : public Mat //定义类模板的方式
    {
    public:
        // ... some specific methods
        //         and
        // no new extra fields
    };

如果在编译时使用了大量的元素访问操作,并且知道矩阵类型,MAT_可以更方便。直接用Mat_类型的变量M_(row,col)访问

    Mat_<double> M(20, 20);
	for (int i = 0; i < M.rows; i++)
		for (int j = 0; j < M.cols; j++)
			M(i, j) = 1. / (i + j + 1);//不使用at,直接用()索引,更方便
	Mat E, V;
	eigen(M, E, V);
	cout << E.at<double>(0, 0) << endl;
	cout << E.at<double>(M.rows - 1, 0);
	getchar();
	return 0;
1.90713
1.06238e-17
全部评论

相关推荐

喜欢走神的孤勇者练习时长两年半:池是池,发是发,我曾池,我现黑
点赞 评论 收藏
分享
11-02 09:49
已编辑
货拉拉_测试(实习员工)
热爱生活的仰泳鲈鱼求你们别卷了:没事楼主,有反转查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务