自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

每天进步一点

No day is perfect, but every day can be a success.

  • 博客(11)
  • 资源 (6)
  • 收藏
  • 关注

原创 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 2104

原创 link_directories, LINK_LIBRARIES, target_link_libraries使用总结

总结了include_directories,link_directories,link_libraries和target_link_libraries的作用,并以实例说明它们在CMakeLists.txt中的角色。尤其是后面三个参数,比较相似,容易弄混。INCLUDE_DIRECTORIES(添加头文件目录)它相当于g++选项中的-I参数的作用,也相当于环境变量中增加路径到CPLUS_INCLUDE_PATH变量的作用(这里特指c++。c和Java中用法类似)。

2015-02-04 16:30:57 46137 4

原创 LINK_LIBRARIES: Targets may link only to libraries. CMake is dropping the item.

编译项目时,用到external library (matlab,需要用到它的libeng.so和libmx.so库),CMakeLists.txt中有这么一句:LINK_LIBRARIES("/opt/MATLAB/R2012a/bin/glnxa64"),编译时会报如下警告和错误:WARNING: Target "myProject" requests linking to directory "/opt/MATLAB/R2012a/bin/glnxa64". Targets may link onl

2015-02-04 16:26:22 18363

原创 解决: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 4058

原创 为c++调用matlab引擎编写CMakeLists.txt

为自己的项目编写一个CMakeLists.txt,用CMake来替代gcc编译。

2015-02-02 21:15:01 1619

原创 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 3107

原创 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 4018 1

原创 Linux 64bit matlab2012a安装MCR Installer,解决无法打开动态链接库问题

通过c++调用matlab中自己编写的函数(是通过将该函数在matlab中mcc编译成.so,然后c++中调用这个.so的方式),成功编译后(编译时也出现一些错误,详情点这里),但是成功编译完后,居然不能运行。为什么编译通过不报任何错误,但是运行不了呢?原来是因为matlab的动态链接库运行时需要安装MCRInstaller(它包含matlab所有的动态链接库文件),所以本文需要安装一下MCRInstaller。我的matlab版本为2012a。

2015-02-01 21:48:53 6474 5

原创 解决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 4836 3

原创 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 7905 16

原创 gcc编译器常用选项的含义

gcc(GNU Compiler Collection)是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++、Object C、Jave等多种语言编写的程序。gcc又可以作为交叉编译工具,它能够在当前CPU平台上为多种不同体系结构的硬件平台开发软件。gcc的编译流程有四个步骤:预处理(Pre-Processing), 编译(Compiling), 汇编(Assembling)和链接(Linking)。

2015-02-01 10:59:14 4931 1

vtk Polydata volume calculation

压缩包中含一个test.vtk 3D点集,带triangle mesh,这些点构成一个闭合的三维物体表面。里面的函数polyDataVolume.cpp计算这些点围成的这个closed object的内部体积。 解决思路:用vtkMassProperties这个类提供的GetVolume()函数。就像这里对vtkMassProperties的提示: Currently only triangles are processed. Use vtkTriangleFilter to convert any strips or polygons to triangles. 也就是说,目前该类只能用于trianglemesh connectivity closedsurface.

2015-05-30

vtk读写和创建点之间的connectivity实例

这里是一个小函数实现读写.vtk文件中的polygons部分的triangular mesh connectivity。事实上这些polygons除了triangle,还可以是任何类型的vtkCellArray,比如:quad,line或vertex。以triangle为例,假设现在需要将a.vtk文件里的点读出来进行一些处理(e.g.,归一化),处理完的点保存为一个新的文件b.vtk,并将a.vtk中的meshconnectivity部分也存入b.vtk中。所涉及的文件都打包在此。

2015-05-24

vtk DataFile standard format

VTK File Formats for VTK Version 3.0 这是一个标准的.vtk文件,它包含点的坐标和点直接的三角形连接关系(POLYDATA points and POLYGONS)。可以用来学习.vtk的格式。其大概内容如下: ================================= # vtk DataFile Version 3.0 vtk output ASCII DATASET POLYDATA POINTS 106 float 0.61315 0.47236 0.52229 0.59243 0.47742 0.52472 0.58274 0.49616 0.51892 ... 0.44238 0.49115 0.46563 0.42996 0.47329 0.45953 0.40371 0.46865 0.46676 0.38897 0.45678 0.48526 POLYGONS 208 832 3 0 1 14 3 14 13 0 3 13 14 27 3 27 26 13 ...

2015-05-24

Linux下用c++调用自己的matlab函数的一个入门实例

这个例子演示了通过mcc将.m函数编译成动态链接库供c++调用的方式实现c++和matlab的交互。具体例子介绍请结合我的博文:blog.csdn.net/arackethis/article/details/43372553

2015-02-02

libstdc++.so.6.0.20 含GLIBCXX_3.4.15 - GLIBCXX_3.4.20

Ubuntu 12.04.5, 64-bit,libstdc++.so.6.0.20。可以用于解决类似“/opt/MATLAB/R2012a/bin/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./programName)”的错误。详细用法见我博客:http://blog.csdn.net/arackethis/article/details/42365573

2015-01-25

libstdc++.so.6

可以用于解决类似“/opt/MATLAB/R2012a/bin/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./programName)”的错误。内含 ... GLIBCXX_3.4.16 GLIBCXX_3.4.17 GLIBCXX_3.4.18 GLIBCXX_3.4.19 GLIBCXX_3.4.20

2015-01-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除