MATLAB重置变量的值

时间:2014-06-27 04:38:07

标签: matlab if-statement

我是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'。但每次单击按钮时,都会重置之前的变量。我理解程序重置值在逻辑上是正确的,但我不能想办法基本上“保存”这些值。如果我太累了,看不到这个或者比这更复杂的话,我不会这样做,所以如果你能帮助我,我将不胜感激!

谢谢!

2 个答案:

答案 0 :(得分:1)

如果您想保存过去的值,可以这样做:

a =  [a newsize];

通过这种方式,您将把所有值添加到不断增加的列表中,而不是替换它们。

答案 1 :(得分:0)

您是否使用GUIDE toolinteractively build界面,或者您是否使用programmatically

如果您使用的是GUIDE,则可以使用传递给每个回调函数的handles structure以及guidata函数来存储/检索值。

如果以编程方式构建GUI,则可以使用nested functions在父函数范围内的变量上创建闭包。

当然还有global个变量,persistent变量和存储在GUI组件中的数据(UserData属性内部或getappdata / {{3} }功能)

如果您想了解各种方法,文档中有关于setappdata的部分。