?? variable_transfer.txt
字號:
可以用global定義全局變量來共享
也可以用結構體handles.variable=****;guidata(hObject, handles);來傳遞
關于參數傳遞:
這個問題我在一年之前就遇到了,當時也想了很久,采用了各種辦法。可以簡介一下我的方法。
1. 盡量在內存中提?。悍椒ㄓ腥N:① 采用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 + -