C/C++ 自制矩阵运算库

头文件,包含矩阵 【创建、叉乘、读取、修改、加减、转置 】操作

//文件名:mat.h
#ifndef _H_MAT
#define _H_MAT

#define RIGHT true//右乘
#define LEFT false//左乘

typedef struct mat{
   
   
	int colSize;//行大小
	int rowSize;//列大小
	double **p;//存放矩阵中的元素
} mat;

typedef struct vector{
   
   
	int Size;//行大小
	double *p;//存放向量中的元素
} vector;

// 矩阵X向量
vector *matXvector(mat *m, vector *v);

/*************************************************************** 
 * 注释打'、':已编写并测试,没、没测试
 * 前缀'_':自更新【对自己进行修改】
***************************************************************/
class Mat
{
   
   
	public:
		Mat(double nums[], int colSize, int rowSize);//构造矩阵、
		~Mat();//、

		mat *D;
		double **temp;//备用指针
		double val;//det(mat)//暂时不用

		//读
		double get(int col, int row);//返回矩阵中的元素,从0开始、
		vector *getCol(int col);//返回矩阵中的行,从0开始、
		vector *getRow(int row, mat *np=NULL);//返回矩阵中的列,从0开始,默认读取本矩阵、

		//写
		void write(int col, int row, double dat, bool _self = false);//修改元素【_self:自加/减dat】、
		void delVector(vector *p);//释放向量、
		void delMat(mat *p);//释放矩阵、

		//运算
		mat *matXmat(mat *a, bool right=LEFT);//矩阵/向量叉乘【默认左乘aXD】、
		void _matXmat(mat *a, bool right=LEFT);//叉乘【直接赋值给自身,默认左乘】、

		mat *T(mat *D);//矩阵转置【外部可用】
		void T();//矩阵转置【对自身】

		bool _add(mat *r);//矩阵+矩阵
		bool _add(double r);//矩阵+常数矩阵
};

#endif

源文件

/**
* mat.cpp
* 功能:矩阵计算
*/

#include <stdlib.h>
#include "mat.h"
//通过数组构造矩阵
Mat::Mat(double nums[], int _colSize, int _rowSize){
   
   
	D = (mat *)malloc(sizeof(mat));
	D->rowSize = _rowSize;
	D
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值