⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 variable_transfer.txt

📁 关于matlab中变量的传递问题
💻 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 + -