MATLAB和C++数据交类实例---矩阵操作
2011-03-10 10:25
573 查看
模板矩阵类xMatrix<T>定义了matlab矩阵的接口。
由xMatrix<T>模板类具化的类有xMatrixDouble,xMatrixFloat,xMatrixInt,xMatrixUInt,
xMatrixInt64,xMatrixUInt64,xMatrixBool,xMatrixChar。
下面将结合实例演示如何使用矩阵,以
xMatrixDouble为例。
1.从matlab中读取矩阵
2.向matlab中写入矩阵
SAN NUAA 2011.3.9
由xMatrix<T>模板类具化的类有xMatrixDouble,xMatrixFloat,xMatrixInt,xMatrixUInt,
xMatrixInt64,xMatrixUInt64,xMatrixBool,xMatrixChar。
下面将结合实例演示如何使用矩阵,以
xMatrixDouble为例。
1.从matlab中读取矩阵
#include <iostream.h> #include "xMatrix.h" #include "MatlabEngine.h" void main() { printf("matlab&c++ /n / visualsan@yahoo.cn NUAA/ 2011/n------------------------/n"); //matlab 引擎 CMatlabEngine g; //打开 cout<<"Open Matlab Engine..../n"; if( g.OpenEngine() ) { //1.从matlab中获取一个5X5的随机矩阵 char tmp[200]; //调用rand生成随机矩阵 strcpy(tmp,"rang_natrix=rand(5);"); g.EvalString(tmp); mxWrap rang_natrix; //获取名称为rang_natrix的矩阵 g.GetVar("rang_natrix",&rang_natrix); xMatrixDouble *pd=(xMatrixDouble*)rang_natrix.GetArrayInterface(); //打印矩阵 for (int i=0;i<pd->GetR();i++) { for (int j=0;j<pd->GetC();j++) { cout<<pd->GetRealAt(i,j)<<" "; } cout<<endl; } //关闭引擎 g.CloseEngine(); } }
2.向matlab中写入矩阵
#include <iostream.h> #include "xMatrix.h" #include "MatlabEngine.h" void main() { printf("matlab&c++ /n / visualsan@yahoo.cn NUAA/ 2011/n------------------------/n"); //matlab 引擎 CMatlabEngine g; //打开 cout<<"Open Matlab Engine..../n"; if( g.OpenEngine() ) { //1.从matlab中获取一个5X5的随机矩阵 char tmp[200]; //准备矩阵5X5 double mr[]= { 1.2,4.4,5.5,6.6,7.7, 1.12,1.44,15.5,1.66,1.77, 21.2,2.44,2.55,2.66,2.77, 3.12,3.44,3.55,3.66,3.77, 4.12,4.44,4.55,4.66,4.77 }; //转换为matlab格式,按列存储 xMatrixDouble::C2Mat(mr,5,5,mr); xMatrixDouble xd(5,5,mr); //写入矩阵 g.PutVar("text_matrix",xd.GetArray()); //计算矩阵的逆矩阵 g.EvalString("text_matrix_inv=inv(text_matrix);"); mxWrap text_matrix; mxWrap text_matrix_inv; //获取名称为text_matrix的矩阵 g.GetVar("text_matrix",&text_matrix); xMatrixDouble *pd=(xMatrixDouble*)text_matrix.GetArrayInterface(); //获取名称为text_matrix_inv的逆矩阵 g.GetVar("text_matrix_inv",&text_matrix_inv); xMatrixDouble *pd_inv=(xMatrixDouble*)text_matrix_inv.GetArrayInterface(); //打印矩阵 cout<<"原矩阵:/n"; for (int i=0;i<xd.GetR();i++) { for (int j=0;j<xd.GetC();j++) { cout<<xd.GetRealAt(i,j)<<" "; } cout<<endl; } cout<<"从matlab中读取的矩阵:/n"; for ( i=0;i<pd->GetR();i++) { for (int j=0;j<pd->GetC();j++) { cout<<pd->GetRealAt(i,j)<<" "; } cout<<endl; } cout<<"从matlab中读取的逆矩阵:/n"; for ( i=0;i<pd_inv->GetR();i++) { for (int j=0;j<pd_inv->GetC();j++) { cout<<pd_inv->GetRealAt(i,j)<<" "; } cout<<endl; } //关闭引擎 g.CloseEngine(); } }
SAN NUAA 2011.3.9
相关文章推荐
- Matlab中导入文本文件中的数据 矩阵合并 以及C++中删除文件操作
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- MATLAB和C++数据交类实例---求任意函数y=f(x)的n阶导数,并计算在x=x0处的值
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 《C++第九周实验报告4-1》---建立一个二维数组类Douary,使该类中有以下数据成员、成员函数及友员函数, //完成矩阵的输入、输出、加、减、相等判断等操作。
- Opencv(C++)和matlab之间通过mat传递数据(矩阵)
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- MATLAB和C++数据交类实例---读取mat文件
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- MATLAB与c/c++之矩阵操作差别
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 大数据矩阵计算基础(二):R、Excel、Matlab中矩阵操作
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- c++第九周【任务4】建立一个二维数组类Douary,使该类中有以下数据成员、成员函数及友员函数,完成矩阵的输入、输出、加、减、相等判断等操作。
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- C++对二进制文件的操作实例