完整word版-C++矩阵运算类库(很实用).doc
上传人:Do****76 上传时间:2024-09-10 格式:DOC 页数:8 大小:22KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

完整word版-C++矩阵运算类库(很实用).doc

完整word版-C++矩阵运算类库(很实用).doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

C++进行矩阵运算类库头文件:Matrix.h#ifndefMATRIX_H#defineMATRIX_H#include"iostream"#include"string"#include<stdlib.h>#include<vector>#include<fstream>#include<sstream>//istringstream必须包含这个头文件usingnamespacestd;classMatrix{public:voidreadMatrix(stringfileName);voidshowMatrix();voidwriteMatrix(stringstr);voidinversion();//求矩阵的逆矩阵voidchange();//求矩阵的转置voidoperator+(Matrix&a);//声明重载运算符的“+”函数voidoperator-(Matrix&a);//声明重载运算符的“-”函数voidoperator*(Matrix&a);//声明重载运算符的“*”函数voidoperator=(Matrix&a);//声明重载运算符的“=”赋值函数vector<vector<double>>_mat;introw;intcol;};#endif源文件:main.cpp#include"iostream"#include"string"#include<stdlib.h>#include<vector>#include<fstream>#include<sstream>//istringstream必须包含这个头文件#include"Matrix.h"#include<time.h>//使用随机数#include<cmath>//数学计算usingnamespacestd;//将运算得到的数据存储到box中,形成一个完整的Matrix量Matrixbox_mul;//矩阵相乘的结果Matrixbox_inver;//矩阵的逆的结果Matrixbox_change;//矩阵转置的结果Matrixbox_plus;//矩阵加的结果Matrixbox_cut;//矩阵减的结果voidMatrix::readMatrix(stringfileName){ifstreamifile(fileName.c_str(),ios::in);/*声明一个输入句柄,打开fileName所指文件。接下来就可以通过ifile>>***来读取1.txt中的内容了*/doubletmp;stringline;vector<double>row;//vector容器,相当于一个数组while(getline(ifile,line)){istringstreamistr(line);while(istr>>tmp){row.push_back(tmp);//在row尾部插入读入的数据}this->col=row.size();_mat.push_back(row);row.clear();istr.clear();line.clear();}this->row=_mat.size();//这里的row不是vector变量,是matrix中的rowifile.close();}voidMatrix::showMatrix(){cout<<"矩阵:"<<endl;//cout<<"row="<<row<<endl;//cout<<"col="<<col<<endl;for(inti=0;i<row;i++){for(intj=0;j<col;j++)cout<<_mat[i][j]<<"";cout<<endl;}}voidMatrix::writeMatrix(stringstr){ofstreamos(str,ios::trunc);//ofstreamos("C:\\Users\\Administrator\\Desktop\\数据矩阵W.txt",ios::trunc);if(os){for(inti=0;i<row;++i){for(intj=0;j<col;++j)os<<_mat[i][j]<<"";os<<endl;}}elsecerr<<"无法打开文件!"<<endl;}voidMatrix::operator+(Matrix&a){//cout<<"矩阵的和:"<<endl;dou