因为项目的需要,需要C++和matlab混合编程。一种方式是利用mexfunction实现,网上有很多的讲解,大家可以去查阅;还有一种方式是matlab直接调用带参数的exe文件,个人感觉用起来更方便一点,实现也比较简单。下面做一些简单讲解,希望能对大家有用。
1、如何生成带参数的exe文件?
我的理解是带参数的exe文件是通过带参数的主函数实现的。即:
int
在这个main函数中,表面上看是有两个参数,但是实际使用中给main函数
传递的参数是保存在argv中的,argc是总的参数的个数,比实际传入的参数多1
个。原因在于argv中第1个值,也就是argv[0]存的是程序的全名,调用时不需要
单独给出,而只需要给出在main函数中需要的其他参数。下面举例简单说明,利用
带参数的exe求两个数的和:
int
{
Sum=argv[1]+argv[2];
cout<<Sum;
}
注意: 1、main函数的格式是固定的;
2、传入的参数是存在agrv[1]及其之后的,而不是agrv[0]开始的。
2、matlab怎么调用带参数的exe文件?
带参数的exe,在matlab中调用的格式为:
!exe文件名.exe 参数1 参数2 参数3....
假设exe文件的名字为Add,功能是求两个数的和,那就需要两个参数(实际是3个参数,argc=3),调用格式为:
!Add.exe 2 3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%