最近在开发一个项目,基于将C++代码的函数与matlab的神经网络工具箱进行交互。即函数作为输出的结果作为matlab神经网络工具箱的输入。由于涉及到C++内置参数根据神经网络计算结果的反馈调节,无法将C++程序和matlab完全运行,经过多日思考和实操,最终确定:信息csv文件传递+c++打包exe运行+matlab调用dos命令使exe运行的方法。具体操作和过程如下:
1、确定matlab和c++函数之间需要传递参数的数据类型和数量,基于csv或者txt格式,编写C++ 数据输入输出函数。
2、将C++工程打包封装成为exe程序。有几点需要注意:(1)c++中文件输入输出路径最好采用绝对路径。(2)采用release模式下生成exe程序。(3)在工程的main函数中最后需要写结束进程的命令。避免matlab无法循环调用。
3、matlab 首先编写数据修改函数和文件输出命令,供exe输入。随后采用命令行的方法调用exe,在matlab中保存exe结果,并执行后续命令。
——————————————————————————————
最开始是考虑用dll动态库+头文件的方法进行交互的。但是C++工程头文件数量太多,同时还涉及到三方库。技术难度较高,遂放弃。
QT(VS)/Matlab交互方法
最新推荐文章于 2024-07-12 22:04:15 发布