欢迎来到天天文库
浏览记录
ID:59143348
大小:21.68 KB
页数:9页
时间:2020-09-11
《矩阵运算C++模块.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、在研究工作中经常需要用到关于矩阵的各种运算,如果每当需要使用,就临时编写,就会特别费时费力。这里将常见的矩阵计算算法做成“头文件+源文件”,日后需要使用,直接复制到文件目录下,在引用就可以了。(Matrix.h)#includeusingstd::vector;classMatrix{public:Matrix(intm,intn){row=m;col=n;vector>B(m,vector(n));//定义一个m行n列的double型数组。A=B;}public:introw;intcol;vector2、r>A;};MatrixMatrixAdd(MatrixM1,MatrixM2);//矩阵相加MatrixMatrixSub(MatrixM1,MatrixM2);//矩阵相减MatrixMatrixMulti(MatrixM1,MatrixM2);//矩阵相乘MatrixMatrixSimpleMulti(intk,MatrixM1);//矩阵数乘MatrixMatrixTrans(MatrixM1);//矩阵转置MatrixMatrixInv(MatrixMa);//矩阵求逆MatrixMatrixYuzishi(MatrixMa,intr,intc);//3、求矩阵的余子式doubledet(MatrixM1,intn1);//求矩阵行列式(Matrix.cpp)#include"stdafx.h"#include"Matrix.h"#include/////////////////////////////矩阵相加///////////////////////////////////MatrixMatrixAdd(MatrixM1,MatrixM2){intm1=M1.row;intn1=M1.col;intm2=M2.row;intn2=M2.col;//获得矩阵的行列数量//if((m1!=m2)4、5、(n1!=n6、2))//{////注意学习C++如何抛出异常,以后补上。//}MatrixMc(m1,n1);vector>&c=Mc.A;vector>&a=M1.A;vector>&b=M2.A;//这里一定要注意按地址传递或者传引用,否则在调用函数时就不能得出正确结果。for(inti=0;i7、//////////////////////////////MatrixMatrixSub(MatrixM1,MatrixM2){intm1=M1.row;intn1=M1.col;intm2=M2.row;intn2=M2.col;//获得矩阵的行列数量//if((m1!=m2)8、9、(n1!=n2))//{////注意学习C++如何抛出异常,以后补上。//}MatrixMc(m1,n1);vector>&c=Mc.A;vector>&a=M1.A;vector>&b=M2.A;//这里一10、定要注意按地址传递或者传引用,否则在调用函数时就不能得出正确结果。for(inti=0;i11、相乘MatrixMc(m1,n2);vector>&c=Mc.A;vector>&a=M1.A;vector>&b=M2.A;//这里一定要注意按地址传递或者传引用,否则在调用函数时就不能得出正确结果。for(inti=0;i
2、r>A;};MatrixMatrixAdd(MatrixM1,MatrixM2);//矩阵相加MatrixMatrixSub(MatrixM1,MatrixM2);//矩阵相减MatrixMatrixMulti(MatrixM1,MatrixM2);//矩阵相乘MatrixMatrixSimpleMulti(intk,MatrixM1);//矩阵数乘MatrixMatrixTrans(MatrixM1);//矩阵转置MatrixMatrixInv(MatrixMa);//矩阵求逆MatrixMatrixYuzishi(MatrixMa,intr,intc);//
3、求矩阵的余子式doubledet(MatrixM1,intn1);//求矩阵行列式(Matrix.cpp)#include"stdafx.h"#include"Matrix.h"#include/////////////////////////////矩阵相加///////////////////////////////////MatrixMatrixAdd(MatrixM1,MatrixM2){intm1=M1.row;intn1=M1.col;intm2=M2.row;intn2=M2.col;//获得矩阵的行列数量//if((m1!=m2)
4、
5、(n1!=n
6、2))//{////注意学习C++如何抛出异常,以后补上。//}MatrixMc(m1,n1);vector>&c=Mc.A;vector>&a=M1.A;vector>&b=M2.A;//这里一定要注意按地址传递或者传引用,否则在调用函数时就不能得出正确结果。for(inti=0;i7、//////////////////////////////MatrixMatrixSub(MatrixM1,MatrixM2){intm1=M1.row;intn1=M1.col;intm2=M2.row;intn2=M2.col;//获得矩阵的行列数量//if((m1!=m2)8、9、(n1!=n2))//{////注意学习C++如何抛出异常,以后补上。//}MatrixMc(m1,n1);vector>&c=Mc.A;vector>&a=M1.A;vector>&b=M2.A;//这里一10、定要注意按地址传递或者传引用,否则在调用函数时就不能得出正确结果。for(inti=0;i11、相乘MatrixMc(m1,n2);vector>&c=Mc.A;vector>&a=M1.A;vector>&b=M2.A;//这里一定要注意按地址传递或者传引用,否则在调用函数时就不能得出正确结果。for(inti=0;i
7、//////////////////////////////MatrixMatrixSub(MatrixM1,MatrixM2){intm1=M1.row;intn1=M1.col;intm2=M2.row;intn2=M2.col;//获得矩阵的行列数量//if((m1!=m2)
8、
9、(n1!=n2))//{////注意学习C++如何抛出异常,以后补上。//}MatrixMc(m1,n1);vector>&c=Mc.A;vector>&a=M1.A;vector>&b=M2.A;//这里一
10、定要注意按地址传递或者传引用,否则在调用函数时就不能得出正确结果。for(inti=0;i11、相乘MatrixMc(m1,n2);vector>&c=Mc.A;vector>&a=M1.A;vector>&b=M2.A;//这里一定要注意按地址传递或者传引用,否则在调用函数时就不能得出正确结果。for(inti=0;i
11、相乘MatrixMc(m1,n2);vector>&c=Mc.A;vector>&a=M1.A;vector>&b=M2.A;//这里一定要注意按地址传递或者传引用,否则在调用函数时就不能得出正确结果。for(inti=0;i
此文档下载收益归作者所有