我在QtCreator环境中使用C ++进行图像分析。为了构建学习模型,我想使用MATLAB中的TreeBagger类,它非常强大。我可以从QtCreator调用MATLAB,给它一些参数,并找回分类错误吗?我可以不使用mex文件吗?
答案 0 :(得分:2)
来自QProcess的同步过程API示例:
QProcess gzip;
gzip.start("gzip", QStringList() << "-c");
if (!gzip.waitForStarted())
return false;
gzip.write("Qt rocks!");
gzip.closeWriteChannel();
if (!gzip.waitForFinished())
return false;
QByteArray result = gzip.readAll();
来自这个例子的概念是能够执行matlab w /任何更好的设置并立即开始编写脚本的过程。写完之后;你可以关闭频道,等待响应,然后从matlab读取结果。不幸的是,我没有经验来提供更直接的例子,但这是大多数情况下的概念。请研究文档以获取其他任何内容。
答案 1 :(得分:1)
Matlab有一个描述here的“引擎”界面,让独立程序调用matlab函数。它的优势在于您可以调用engPutVariable
和engGetVariable
以二进制格式传输数据(我认为它可以通过在您的进程和matlab之间使用共享内存来实现,但我不确定) ,因此您不必将数据转换为ascii并从ascii解析结果。
对于c ++,您可能想为RAII编写一个包装类,或者查看http://www.codeproject.com/Articles/4216/MATLAB-Engine-API,这已经完成了。