
matlab上的程序在C语言上能运行。matlab是一种科学的计算语言,采用的是解释执行的方式,所有在C语言上能运行。
有一个通俗的比喻,
如果程序设计语言是车,那么C
语言就是全能手,
C十十语言是加强版的C
语言,
MATLAB
是科学家用来完成特殊任务的工具。作为使用MATLAB
的科学家和工程师,
通过混合程序设计,就可以借用CIC十十语言这两个全能手增强MATLAB
的功能;作为使用C/C十十语言开发的开发者,也可以通过混合程序设计来使用MATLAB强大的科学计算与数据可视化功能。
必须在你的VS2008中安装64位的编译器组件,就是在安装选择组件时选择。
(1)如果不安装64位的编译器组件,就无法在64位的Matlab里面找到VS2008的编译器;
(2)C语言编译后的DLL,32位和64位的后缀名不一样,64位的matlab无法识别、运行32位的C语言DLL。
当然啦,你也可以考虑安装32位的matlab,不过并不需要重装32的 *** 作系统。
不过如果这样的话,你的程序就无法处理很大的数据量了,因为32位程序的内存限制。
常用的有使用mex函数和dll两种, 现在我一直用dll, 在VC下将C/C++代码编译成dll, 然后在matlab中调用
以下是几个常用的matlab函数, 你可以去查看matlab的帮助, 那里也有相关的例子的:
1 loadlibrary; 下载dll
2 calllib; 调用dll
3 libpointer; 初始化结构体变量;
4 unloadlibrary; 卸载dll
5 libfunctionsview; 查看dll中的函数
多看看这几个函数的matlab帮助,慢慢就会了
1准备好C语言程序,清楚C语言的入口函数
2编写mexfunction函数。mexfunction函数为C语言与MATLAB语言的接口函数。调用实例在mylinedetectc文件中在MATLAB中调用mex指令编译相关文件,将C语言编译为MEX文件。
3编译完成后,生成mylinedetectmexw32或mylinedetectmexw64文件,此文件即mex文件,用于MATLAB与C语言接口函数
4编译完成之后,编写MATLAB函数,调用MEX文件。以MEX文件的形式调用编译完成的C语言函数[o1,o2]=mylinedetect(double(X)');
5输出结果,上述linedetect函数完成图像中直线检测功能,带入MATLAB中调用后形成结果。
Matlab 是当前应用最为广泛的数学软件,具有强大的数值计算、数据分析处理、系统 分析、图形显示甚至符号运算等功能[1]。利用这一完整的数学平台,用户可以快速实现十分 复杂的功能,极大地提高工程分析计算的效率[2][3]。但与其他高级程序[3]相比,Matlab 程序 是一种解释执行程序,不用编译等预处理,程序运行速度较慢[4]。
C/C++语言是目前最为流行的高级程序设计语言之一[5]。它可对 *** 作系统和应用程序以 及硬件进行直接 *** 作,用C/C++语言明显优于其它解释型高级语言,一些大型应用软件如 Matlab 就是用C 语言开发的。
在工程实践中,用户经常遇到Matlab 与C/C++混合编程的问题。本文基于Matlab 65和VC60 开发环境,在Windows 平台下就它们之间的混合编程问题进行深入研究并举例说明。
2 Matlab 调用C/C++
Matlab 调用C/C++的方式主要有两种:利用MEX 技术和调用C/C++动态连接库。
在Matlab 与C/C++混合编程之前,必须先对Matlab 的编译应用程序mex 和编译器mbuild进行正确的设置[1]:
对Matlab 编译应用程序mex 的设置:Mex –setup
对Matlab 编译器mbuild 的设置:Mbuild –setup
21 调用C/C++的MEX 文件
MEX 是Matlab Executable 的缩写,它是一种“可在Matlab 中调用的C(或Fortran)语 言衍生程序”[6]。MEX 文件的使用极为方便,其调用方式与Matlab 的内建函数完全相同,只 需在Matlab 命令提示符下键入MEX 文件名即可。
一个C/C++的MEX源程序通常包括4个组成部分,其中前3个是必须包含的内容,第4个则根据所实现的功能灵活选用:(1)#include “mexh”;(2)MEX文件的入口函数mexFunction, MEX文件导出名必须为mexFunction函数;(3)mxArray;(4)API函数
min z=-5x1-4x2-6x3
x1-x2+x3<=20
3x1+2x2+4x3<=42
st{ 3x1+2x2<=30
xi>=0,i=1,2,3
f=[-5,-4,-6];
A=[1 -1 1;3,2 4;3 2 0];
b=[20;42;30];
lb=zeros(3,1);
在matlab中安装mex,然后就可以把c文件放在matlab中编译成mex文件,这个mex文件就可以作为matlab的一个command使用,可以返回一个double型的矩阵回来。
以下是百度百科的定义:
MEX文件是一种可在matlab环境中调用的C(或fortran)语言衍生程序,MEX文件的后缀名按32位/64位分别为 mexw32/mexw64。MEX文件是由C或Fortran语言编写的源代码,经matlab编译器处理而生成的二进制文件。它是可以被matlab解释器自动装载并执行的动态链接程序,类似windows下的dll文件。
MEX文件实现了一种其它语言与MATLAB的接口,通过MEX文件可以在MATLAB中像调用内嵌函数一样调用使用C语言和Fortran等语言编写的函数,实现了代码重用,同时也能提高MATLAB环境中数据处理的效率。
以上就是关于matlab上的程序在C语言 上能运行吗全部的内容,包括:matlab上的程序在C语言 上能运行吗、matlab调用C语言程序、请问在matlab 中怎么引进c语言程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)