在“matlab”中的程序如何调用为另一个程序生成的数据

在“matlab”中的程序如何调用为另一个程序生成的数据,第1张

第一个程序运行完毕后,加入一个命令save mat;

第二个程序开始时插入一个命令 load mat;

也可以指定要保存的变量,详细指令可以在matlab中doc save,doc load,或者help都可以查看这两个命令的详细用法,matlab尽量少用全局变量。

程序是:

x = 1:2:9;

for i=1:5

eval(['a',num2str(i),'=',num2str(x(i)),';'])

end

% 测试

fprintf('a1=%d,a2=%d,a3=%d,a4=%d,a5=%d\n',a1,a2,a3,a4,a5)

一:另外一个程序肯定是个m文件,或者一个函数,假设函数名为fun,

那么在这个程序中,输入代码:c=fun(a,b);

二:其中,a,b是指要得到另外一个程序的运行结果需要输入的参数,

c是指能得到的结果。

这样,在本程序中就用到了另一个程序运行的结果。

在matlab执行的过程中,要启动exe程序,当然肯定不能指望用手动方式来启动,那么matlab是如何做到的呢?

设C++程序为:

#include<iostream>

using namespace std;

int main()

{

int a = 1;

int b = 2;

int c = a + b;

cout << c << endl;

return 0;

}

设生成的exe文件为testexe,且把该文件放在桌面上,现在用matlab来启动testexe,matlab程序如下:

clear

clc

cmd = 'C:\Documents and Settings\Administrator\桌面\testexe';

system(cmd);

编写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中安装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”中的程序如何调用为另一个程序生成的数据全部的内容,包括:在“matlab”中的程序如何调用为另一个程序生成的数据、MATLAB如何在一个文件中调用另一个文件的输出结果、matlab怎样调用exe文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10214682.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存