我使用Matlab對拉伸測試分析的GUI進行了硬編碼。鎖定結構內容
當調用我decalare Results
結構等都含有從分析所有結果的GUI和欲.mat
文件存儲它與分析(應力 - 應變曲線,尺寸等)
期間創建的所有數據當GUI開始爲nan
時,聲明Results.whatever
,並在回調中設置適當的值。當我做一個錯字,它只是新的附加價值Results.whtever
不拋出任何錯誤,警告,無論...
有一些方法,如何在回調例程
- 防止新的結構定義(一個或多個)即將發生。即
Results.whtever=1
拋出錯誤,而Results.whatever=1
不會。 - 編輯結構內容而不是重新定義它I.e.
foo(Results.whtever,1)
拋出錯誤,而foo(Results.whatever,1)
不會。
編輯:代碼段
% GUI initiation (declaring nested variables)
function=runGUI
% code
Results.Rpt=nan;
% another code
% Callback using nested variables Results and DataArray
function PushFoo
% more code
RP=find(DataArray(:,11)>0.2,1,'first');
Results.RPt=round(DataArray(RP,9));
% yet another code
end
end
切到代碼段;它看起來不是問題,但隨着請求的增加代碼變得越來越長。
你能解釋一下什麼地方你是否正在犯這個錯字,以及當前如何存儲/使用該值?在您的回調中,您可以使用'isfield'來確保該字段當前存在,而不是添加新字段... – tmpearce