Mat_类模板

本文介绍了Mat_类在矩阵运算中的应用实例,展示了如何初始化Mat_类的矩阵并进行元素访问和修改,同时提供了完整的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先来段代码感受一下

	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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

量子象限

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值