MATALAB 生成和调用 c /c++ 文件
来源:互联网 发布:寒武纪年手机版软件 编辑:程序博客网 时间:2024/05/20 16:41
说明:本文为博主在学习过程中的学习笔记,和大家分享,未经博主允许不得转载。
MATLAB 有强大的计算,但是计算速度显然跟不上。因此,有时候在代码中插入c /c++代码必不可少。本文为大家介绍如何插入c /c++代码。
详细的代码下载地址:http://download.csdn.net/detail/xiaoyanghijk/9618136
初步的生成mexw64的步骤可以参考上一个博客的例子: http://blog.csdn.net/xiaoyanghijk/article/details/52370459
这里给个更为详细的例子,输入两个数组(比如图像),中间处理,输出一个数组(比如图像):
1) 在当前路径下写一个 Array_add.cpp 文件
#include "mex.h"
//目的,输入两个维数一样的二维数组,经过处理,输出一个维数一样的数组
//输入 arr1 arr2 arr3
//输出 out_arr= arr1 +arr2
//MATLAB调用形式: [resizedArr, resizedDims] = ResizeArray(arr, selRows, sekCols)
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
if (nrhs != 3)
{
mexErrMsgTxt("参数个数不正确!");
}
int rowNum1 = mxGetM(prhs[0]);//prhs[0] 第一个输入参数的指针
int colNum1 = mxGetN(prhs[0]);
mexPrintf("第一个输入参数的行 rowNum %d ",rowNum1);
mexPrintf("第一个输入参数的列colNum %d ",colNum1);
mexPrintf("\n");
int rowNum2 = mxGetM(prhs[1]); //prhs[1] 第二个输入参数的指针
int colNum2 = mxGetN(prhs[1]);
mexPrintf("第二 个输入参数的行 rowNum %d ",rowNum2);
mexPrintf("第二个输入参数的列colNum %d ",colNum2);
mexPrintf("\n");
int rowNum3 = mxGetM(prhs[2]); //prhs[2] 第三个输入参数的指针
int colNum3 = mxGetN(prhs[2]);
mexPrintf("第三 个输入参数的行 rowNum %d ",rowNum3);
mexPrintf("第三个输入参数的列colNum %d ",colNum3);
mexPrintf("\n");
......... 代码太长了,下载地址:http://download.csdn.net/detail/xiaoyanghijk/9618136
mexPrintf("\n") ;
}
mexPrintf("OK!\n");
}
第二步:在命令窗口中输入:mex Array_add.cpp 生成Array_add.mexw64 文件。
第三步:测试:
输入:
arr1=[1 2 3 ;4 5 6 ;7 8 9 ]
arr2=[ 8 4 5 ;7 8 2 ;6 9 8 ]
arr3=3
[out_arr]=Array_add(arr1,arr2,arr3)
输出:
第一个输入参数的行 rowNum 3 第一个输入参数的列colNum 3
第二 个输入参数的行 rowNum 3 第二个输入参数的列colNum 3
第三 个输入参数的行 rowNum 1 第三个输入参数的列colNum 1
打印第一个输入数组数据:
1.000000 2.000000 3.000000
4.000000 5.000000 6.000000
7.000000 8.000000 9.000000
打印第二个输入数组数据:
8.000000 4.000000 5.000000
7.000000 8.000000 2.000000
6.000000 9.000000 8.000000
打印第三个输入数组数据:
3.000000
打印输出数据:
9.000000 6.000000 8.000000
11.000000 13.000000 8.000000
13.000000 17.000000 17.000000
OK!
out_arr =
9 6 8
11 13 8
13 17 17
- MATALAB 生成和调用 c /c++ 文件
- VS2012 C语言dll文件生成和C#调用
- matlab生成c和c++调用的dll文件
- c++dll生成和调用
- 使用Matalab封装动态链接库(dll)供.NET(C#)调用
- C#调用C生成DLL文件
- C#调用C生成DLL文件
- [zz]C#调用C生成DLL文件
- C语言调用matlab引擎和调用matlab生成的DLL文件
- C#dll的生成和调用
- C生成文件和.CPP和.C的差别
- 【C++】JSON文件的读取和生成
- 【C++】JSON文件的读取和生成
- 【C++】JSON文件的读取和生成
- 【C++】JSON文件的读取和生成
- C# DLL文件的生成和引用
- c头文件和函数调用
- Keil C 里面Lib库文件的生成与调用
- mysql笔记
- 如何安装OEPE
- Codeforces 489B BerSU Ball
- vector中erase用法注意事项
- maven发布SNAPSHOT版本到私服仓库
- MATALAB 生成和调用 c /c++ 文件
- UNP——Chapter 2:传输层:TCP、UDP和SCTP
- Android Framewoks << 写的很好
- 提取xml中所有节点的text数据
- java 多线程
- C++之tinyXML使用
- tomcat 设置编码格式
- LeetCode(87) Scramble String
- html5中的Web Storage知识储备