📄 variable_transfer.txt
字号:
可以用global定义全局变量来共享
也可以用结构体handles.variable=****;guidata(hObject, handles);来传递
关于参数传递:
这个问题我在一年之前就遇到了,当时也想了很久,采用了各种办法。可以简介一下我的方法。
1. 尽量在内存中提取:方法有三种:① 采用function的varargin和varargout传送,② 存在handle的ApplicationData中,③保存在handles里面。当然还有其他方法。
2.存在硬盘上,采用save和load。
3.用全局变量,最次的办法,有时却是最好的办法。
关于handles:
实际上这个handles是MATLAB中GUI编程中最常用的一个句柄管理变量。
handles的生成:handles = guihandles( figurehandle );将figure中所有对象中“Tag”属性有值的句柄的handle采集在一起。handles是结构名,每个“Tag”域名里保持此对象的句柄。
handles的保存:guidata( figurehandle, handles );handles将保存在figure对象的“ApplicationData”的一个域名里。
handles的使用:handles = guidata( h );其中为figure中任意一个对象的句柄。
handles.SpeechSourceGui可能是一个figure的句柄,“userdata”是一个对象的属性,可以在其中存取任何数据。但是我不怎么用它,一则它只能存一个变量;二则它无法存入变量的名字,很难区分。
nargin,nargout,varargin,varargout:
nargin:输入参数的个数,主要用于两个方面:①判断输入参数的个数,如果输入参数个数不对,可以警告或其他处理;②根据参数个数的不同可以做不同的处理。如:
if nargin == 0
error;
elseif nargin == 1
…………
elseif nargin == 2
…………
else
warndlg( '……‘, ’‘,‘modal')
return ;
end
nargout:输出参数的个数,用法同上。
varargin:输入参数的总和,保存为cell结构。提取方式如下:
A = varargin{1} ;
B = varargin{2:end} ;
varargout 输出参数。见到的最常见的用法是:
if nargout > 0
varargout{1} =figurehandle ;
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -