我是MATLAB的新手,我创建了一个程序,我正在尝试与此类似的情况
Pushbutton1
a = 1
b = 1
c = 1
if (level==1) then
newsize=<some calculations here>
a = newsize
elseif (level==2)
newsize=<some calculations here>
b = newsize
else
newsize=<some calculations here>
c = newsize
end
plot(a,b,c)
但是当'级别'发生变化时,它必须更新/ b / c上的'newsize'。但每次单击按钮时,都会重置之前的变量。我理解程序重置值在逻辑上是正确的,但我不能想办法基本上“保存”这些值。如果我太累了,看不到这个或者比这更复杂的话,我不会这样做,所以如果你能帮助我,我将不胜感激!
谢谢!
答案 0 :(得分:1)
如果您想保存过去的值,可以这样做:
a = [a newsize];
通过这种方式,您将把所有值添加到不断增加的列表中,而不是替换它们。
答案 1 :(得分:0)
您是否使用GUIDE tool至interactively build界面,或者您是否使用programmatically?
如果您使用的是GUIDE,则可以使用传递给每个回调函数的handles
structure以及guidata
函数来存储/检索值。
如果以编程方式构建GUI,则可以使用nested functions在父函数范围内的变量上创建闭包。
当然还有global个变量,persistent变量和存储在GUI组件中的数据(UserData
属性内部或getappdata
/ {{3} }功能)
如果您想了解各种方法,文档中有关于setappdata
的部分。