第一个程序运行完毕后,加入一个命令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文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)