这2天用c语言写了一个矩阵 的基本运算库函数,代码只有几百行,也就是只有
extern CMat *CreateMat(uint cols,uint rows,MAT_DATA_TYPE type, void *data);
extern CMat *SetMatData(CMat* mat , void *data);
extern void *RealseMat(CMat* mat);
extern double GetData2D(CMat* mat,uint cols,uint rows);
extern double SetData2D(CMat* mat,uint cols,uint rows,double val,MAT_DATA_TYPE type);
extern void PrintMat(CMat* mat);
extern CMat *ReshapeMat(CMat *mat,uint rows,uint cols);
extern CMat *AddMat(CMat *mat ,CMat *mat1,CMat *mat2);
extern CMat *SubMat(CMat *mat ,CMat *mat1,CMat *mat2);
extern CMat *MulMat(CMat *mat ,CMat *mat1,CMat *mat2);
//////////////////////////////////////////////////////////////////////////////////////////////////////
//下面是一些内部函数
extern void* DataTypeTo(void *data,MAT_DATA_TYPE type);//>>>
extern uchar mSizeOf(MAT_DATA_TYPE type);
extern CMat *CreateMat(uint cols,uint rows,MAT_DATA_TYPE type, void *data);
extern CMat *SetMatData(CMat* mat , void *data);
extern void *RealseMat(CMat* mat);
extern double GetData2D(CMat* mat,uint cols,uint rows);
extern double SetData2D(CMat* mat,uint cols,uint rows,double val,MAT_DATA_TYPE type);
extern void PrintMat(CMat* mat);
extern CMat *ReshapeMat(CMat *mat,uint rows,uint cols);
extern CMat *AddMat(CMat *mat ,CMat *mat1,CMat *mat2);
extern CMat *SubMat(CMat *mat ,CMat *mat1,CMat *mat2);
extern CMat *MulMat(CMat *mat ,CMat *mat1,CMat *mat2);
//////////////////////////////////////////////////////////////////////////////////////////////////////
//下面是一些内部函数
extern void* DataTypeTo(void *data,MAT_DATA_TYPE type);//>>>
extern uchar mSizeOf(MAT_DATA_TYPE type);

本文介绍了作者使用C语言编写矩阵基本运算库函数的经历,包括创建、设置数据、释放矩阵,以及矩阵的加、减、乘等操作。在编写过程中,作者遇到了代码通用性、错误处理和初始化等问题,认识到C++在代码管理和结构化方面的优势。同时,讨论了C语言中指针和数据类型的处理,并提到未来计划使用C++重写代码,并考虑使用OpenCV库函数以提高效率。
最低0.47元/天 解锁文章
375

被折叠的 条评论
为什么被折叠?



