
C++和matlab混合编程
文章平均质量分 83
arackethis
生活就像巧克力
展开
-
gcc/g++使用第三方库时添加头文件路径和库文件路径的方法
本文总结了使用第三方库函数时将其路径告诉编译器(gcc和g++同理)的2种常用方式,并举例说明了每种方式的具体用法。原创 2015-01-31 18:09:52 · 54321 阅读 · 2 评论 -
Matlab绘图笔记:修改坐标轴显示的刻度密度,lable文字,和位置
问题描述:想修改X轴的刻度密度,lable文字,和位置。即将如下面所示的matlab默认的左图效果修改为右图效果:原创 2015-04-12 23:02:05 · 39501 阅读 · 0 评论 -
Linux下c++调用自己编写的matlab函数:通过shell script system command实现
在实际开发中,很多时候需要通过shellscript或者shellcommand来执行matlab函数。其语法如下:matlab-nodesktop -nosplash - nojvm -r "[command];" 这句话的意思是最小化不加载图形界面打开Matlab并在命令提示符后输入command。这里的command可以是function也可以是script,调用时需要省略后缀名.m。function和script的区别就是调用方式不一样,function更灵活更容易扩展。其实传递参数不是functi原创 2015-02-06 20:44:24 · 2134 阅读 · 0 评论 -
为c++调用matlab引擎编写CMakeLists.txt
为自己的项目编写一个CMakeLists.txt,用CMake来替代gcc编译。原创 2015-02-02 21:15:01 · 1676 阅读 · 0 评论 -
解决:MATLAB_Compiler_Runtime libgfortran.so.3: version `GFORTRAN_1.4' not found
今天运行程序时出现一个小错误:/opt/MATLAB/MATLAB_Compiler_Runtime/v717/sys/os/glnxa64/libgfortran.so.3: version `GFORTRAN_1.4' not found (required by /usr/lib/liblapack.so.3gf)。大概是因为我的程序中用到了liblapack,而liblapack又用到了libgfortran,但是MATLAB_Compiler_Runtime中带来的这个版本的libgfortran原创 2015-02-03 15:26:07 · 4144 阅读 · 0 评论 -
C++向matlab engine传递二维数组,互为转置
在C/C++中,二维数组是按行排列的。即:先存放a[0]行,再存放a[1]行,接着是存放a[2]行,等等。假设这些行中,每行有N个元素,那么也是依次存放。而在Matlab中,以矩阵方式存储数据,它是按列优先排列的。即:先存放a[0]列,再存放a[1]列,接着是存放a[2]列,等等。所以,在这里我们将C++中的多维数组传递到matlab的时候,一定要记得这一顺序问题。其实很简单,只要考虑一次转置就可以了。比如在C++中定义了一个M*N的二维数组A,现在想把它传递到matlab中进行运算,那么只需要在matla原创 2015-02-02 19:30:11 · 3149 阅读 · 0 评论 -
Linux 64bit matlab2012a安装MCR Installer,解决无法打开动态链接库问题
通过c++调用matlab中自己编写的函数(是通过将该函数在matlab中mcc编译成.so,然后c++中调用这个.so的方式),成功编译后(编译时也出现一些错误,详情点这里),但是成功编译完后,居然不能运行。为什么编译通过不报任何错误,但是运行不了呢?原来是因为matlab的动态链接库运行时需要安装MCRInstaller(它包含matlab所有的动态链接库文件),所以本文需要安装一下MCRInstaller。我的matlab版本为2012a。原创 2015-02-01 21:48:53 · 6602 阅读 · 5 评论 -
Linux下c++调用自己编写的matlab函数:通过matlab引擎实现
问题描述:有一个c++程序main.cpp,和一个matlab函数myFunc.m。现在要做这件事:1)从main.cpp中传递一个1行5列的double类型的array到myFunc.m中; 2)myFunc.m中求和; 3)main.cpp中接收myFunc.m返回的和并输出。实验平台是:ubuntu 12.04.5 + g++4.6 + matlab2012a。原创 2015-02-01 22:37:00 · 4054 阅读 · 1 评论 -
Linux下c++调用自己编写的matlab函数:通过mcc动态链接库.so实现
这篇笔记通过mcc将.m函数编译成动态链接库供c++调用的方式实现从c++中调用matlab里面的自己写的函数。其实,调用自己编写的m函数,只是多了一步将自己的matlab函数编译成动态链接库文件(也就类似自带的那种eigen.h和libeng.so)。实验平台:ubuntu 12.04 + g++4.6 + matlab2012a原创 2015-02-01 16:57:42 · 8237 阅读 · 16 评论 -
解决In function `mwException::mwException()': undefined reference to `mclcppCreateError'
在进行这个实验中,通过c++调用matlab中自己编写的函数(是通过将该函数在matlab中mcc编译成.so,然后c++中调用这个.so的方式),报错记录总结。实验环境:Ubuntu 12.04.5 64bit, gcc 4.6, matlab 2012a 。原创 2015-02-01 20:46:08 · 4917 阅读 · 3 评论 -
用c++函数调用matlab绘制besselj曲线
matlab eigen学习中。原来可以这么用,直接通过engEvalString发送命令,由matlab自己创建数据,自己做图。c++只是唤醒作用。原创 2015-01-30 20:30:03 · 2763 阅读 · 0 评论 -
Ubuntu下c++调用matlab eigen的入门实例
学习了一下c++中调用matlab函数的方法。之前一直用system command的形式,但是长时间读取一个动态的文本中的数据,似乎不太稳定,经常卡死在一个错误上"Invalid file identifier. Use fopen to generate a valid file identifier."。想试试用matlab eigen直接获取matlab函数返回值。原创 2015-01-30 19:46:02 · 2854 阅读 · 0 评论 -
Matlab绘图笔记:只给纵坐标加grid线,横坐标和刻度保持不变(2个坐标轴叠加)
想把matlab默认的方框刻度绘制成box off刻度在外面的效果。(这里是通过复制一个相同的透明坐标轴,然后设置该坐标轴的属性,叠加一下,遮挡住一些线条,就达到只显示纵坐标的坐标线为灰色,X坐标轴不变,y轴的lable也不会随着y轴的grid改变。)原创 2015-04-12 19:51:35 · 5869 阅读 · 0 评论