李钰演的电视剧:matlab函数调用及数据传递(转载)
来源:百度文库 编辑:中财网 时间:2024/05/09 04:50:42
函数挪用 在一个m文件中,可以界说多个函数,但是文件名必定要与第一个函数(主函数)一概, 该文件中其他函数则为本文件的私有函数,外部不行访问(可以经历参数挪用的要领访问,下面会形容)。 比如在一个步骤中,创建一个fig后,会天生这样一个m文件: function varargout =febirdfun(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @febirdfun_OpeningFcn, ... 'gui_OutputFcn', @febirdfun_OutputFcn, ... 'gui_LayoutFcn', [], ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end 剖析 一下这个主函数:结果 gui_State是一个机关,指定了figure打开和输出函数, 开始 gui_CallBack为空,倘使输入参数个数不为0,接下来将输入第一个参数通报给gui_State.callback。 接下来用交给 gui_mainfcn函数治理,gui_mainfcn 按照gui_State和传入参数 来确定是执子函数,仍旧打开 fig 文件和运行 OpeningFcn和OutputFcn。 如过 gui_Callback为空,那么就运行打开主窗口fig文件,不然,挪用子函数 这个函数的作用有: 1.当输入不带参数的时辰,可能打开fig文件,而且初始化控件 2.当指定必要挪用的函数名时,可以作为其他控件callback运用 (实则挪用同文件中的子函数) 比如,在某一个控件的 callback 内里这样写:(febrdfun为主函数) febirdfun("@push_button_Callback",gcbf,[]) 这样的挪用就可以挪用文件内里的子函数。 固然也可以运用其他文件内里的函数作为callback,不外那样的话,数据通报会繁难一些。 下面看figure Openning Function %================================ function Main_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; % 通常在这内里界说自己的数据机关比如 s=struct("P1",v1... "P2",v2); handles.MyStruct=s; % 更新handles数据机关 特别重要!! guidata(hObject, handles); %================================ function varargout = Main_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; 这个函数是输出返回值的界说 注意: matlab 中,function 对应的 end 可以没有,但是随着版本的更新,end将会被要求。 六:数据通报 在matlab GUI步骤中实行值通报我时时运用的两种要领: 1.使用主函数的 handles 数据机关传值 比如在某一个图像窗口句柄 中有一个方向 handles(可以界说自己的数据机关) 那么在一个子Callback函数中,可以经历handles通报数据: function sliderbar1_Callback(hObject,eventdata,handles) %% eg1 v1=get(hObject,'value'); obj=handles.Text1 %直接定位 Tag 为 Text1的控件 set(obj,'value',v1); %% eg2 handles.MyStruct.P1=v1; % 改变handles中的数据 guidata(hObject,handles); %更新 handles !!重要 end 2.使用控件的 UserData 来传值 每一个控件平常都有一个属于自己的自界说域,userData,你可以界说这样一个域用来存储自己的数据,比如在界说 timer 的 TimerFcn中 t1=timer('TimerFcn',{@Timer1Fcn},'ErrorFcn',@Timer 1ErrorFcn},'Period',1.0,'ExecutionMode','fixedrate' ); t1.Userfata=handles.MyStruct; 这里 Timer1Fcn的挪用看似没有传入任何参数,现实上此函数的界说必定要有至少两个参数 function Timer1Fcn(obj,eventata) obj.UserData=XXXXX;%可以这样共享数据 end 固然Timer界说的时辰答应这样通报一个参数,固然这样也可以实行传值. t1=timer('TimerFcn',{@Timer1Fcn,handles},'ErrorFcn ',{@Timer1ErroFcnr,handles},'Period',1.0,'Execution Mode','fixedrate'); 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/andysun001/archive/2010/07/15/5735593.aspx
在结构体实现数组中,函数调用时有哪些数据传递方式
C#如何调用matlab的函数?
matlab simulink中如何调用自定义函数S_function
请问:如何在vc++里调用matlab 函数?
delphi调用matlab绘图函数时为什么matlab figure窗口启动后自动关闭?
指针在函数数据传递中的作用有哪些
matlab中怎样写个函数,在主程序中调用该函数的方法
matlab中如何看函数结构体中的数据
编写函数求表达式x2-2x+1的值,x作为参数传递给函数,调用此函数求:
调用acc数据库ip数据的函数修改
函数调用
急问用MATLAB中的GUI做一个调用函数的界面的问题!
我用matlab编的函数文件应保存在哪个目录下啊调用时一老说没定一
matlab怎么调用函数[y,ny]=conv_m(x,nx,h,nh)?
打印时老提示“传递到系统调用得数据区太小”,请问如何解决?
matlab文件循环调用
vc调用MATLAB
Vc调用Matlab引擎
matlab子程序调用
数据调用
delphi中过程或函数用TTable等数据集作参数是地址传递还是值传递?
在VB中调用matlab,把vb数据传到用matlab编写的EXE文件,产生输出数据,再传给VB.怎么做?
MATLAB中的MATLAB Compiler怎么调用出来
vb可以调用matlab吗,怎样调用?