简单地方法是通过磁盘文件交换数据,先将c程序运行结果保存为磁盘文件,然后再通过matlab读取;
还有一个方法比较烦,但是要快很多,就是将你的c程序编译成mex文件,可以在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中调用后形成结果。
1 打开matlab2012b,点击new script,进入m文件编辑区。
2 先点击New,再在下拉选项中选择script。
3 进入m文件编辑区,文件默认名为:Untitled,即:未命名的。
4 在编辑区窗口定义要创建的函数。在这里我们编辑一个函数:
function y=raicos(t)
y=1/2(1+cos(pit))(t<-1&t<1);
5 保存创建的函数。按照下图所标的顺序,依次选择save、保存位置、保存的名称、保存确认键。下次就可以直接调用函数了。
6 在编制程序的过程中,若需用到y=raicos(t)函数,可直接调用。调用实例如下:
t=-2:001:2;
x=raicos(t);
plot(t,x)
保存m文件。方法步骤如上。也可以依次选择save as、保存位置、保存的名称、保存确认键。
点击run。即“运行”。
运行结果如下,在图形窗口中绘出了函数图形,即为所要的输出结果。
编写Gui时往往需要调用一些其他的外部程序。windows系统下,matlab可以用dos()或者
system()等命令来调用外部程序。
例如:dos(C:\Program Files\AA\XXXexe')
有时还需要在调用应用程序后,让应用程序再调用某些文件来执行。这时可以在dos()或者
system()中加入参数来实现:
比如:dos(C:\AA\XXXexe ABCtxt')%注意这里对空格的要求很严格。
在默认情形下,dos()或者system()打开了一个应用程序,知道这个应用程序结束了才执行后续
的命令,这里可以通过添加 & 的选项来实现打开应用程序后立即返回matlab,然后执行matlab
的后续命令,而不等待应用程序。
比如:dos('notepad filem &')%To open the Microsoft Notepad editor and return control
immediately to MATLAB。
由于安装应用程序的路径中往往有空格,使得dos()或者system()无法识别。因此可以在执行
dos()或者system()之前,先记住当前路径cd1=cd; 然后把当前路径改到应用程序所在的文件夹。
打开应用程序完成后,再改回cd1不影响后续程序的执行。
用matlab关闭应用程序时,可以调用tskillexe,tskillexe在关闭命令时,需要知道应用程序对应进程
的PID,有关用matlab读取PID的代码在网有下载。
以上就是关于在matlab中如何调用执行外部程序呢全部的内容,包括:在matlab中如何调用执行外部程序呢、如何在matlab上运行c语言写的程序、在matlab中怎么直接调用函数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)