我使用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