matlab - matlab在按钮单击时附加相同变量的不同值
问题描述
所以我在 matlab 应用程序设计器中执行此操作,我有一个x
在每次单击按钮时都会更改的变量,我想将每个值添加x
到数组中以找到平均值。在第一次点击时说x
is 10
,第二次点击x
is ,2
第三次点击x
is 9
,我想要一个数组 values 等于[10 2 9]
。每次我尝试过时,它都会包含最新的x
值。以下是我尝试过的。
function GenerateButtonPushed(app, event)
x = (randi[1 30]);
values = [];
values(end+1) = x;
average = mean(values)
我可以看到问题是什么,每次按下按钮时,它都会将数组重置为空,但我不知道如何解决这个问题。感谢建议,谢谢!
解决方案
您需要在回调函数之外存储您的值。一种方法是使用setappdata
and getappdata
。
function GenerateButtonPushed(app, event)
x = (randi[1 30]);
values = getappdata(app.Parent, 'myvalues'); % Get values from the app
values(end+1) = x;
setappdata(app.Parent, 'myvalues', values); % Put the updated values back
average = mean(values)
在您的应用程序启动的某个地方,您需要使用类似setappdata(app_fig, 'myvalues', [])
.
在此处查看示例
注意我建议阅读函数中变量的“范围”,以便您了解它们为什么不持久。
推荐阅读
- c - 为什么`_exit`有下划线前缀而其他系统调用没有?
- javascript - 检查不和谐机器人错误中的角色
- python - 在比较字典列表后,编写 Python 函数以返回对应于给定输入的最大值的更好方法
- azure-active-directory - AzureAD 方案和 OpendId aad 方案有什么区别?
- python - 在 python 上将此验证码中的图像转换为文本
- docusignapi - Docusign - 日期选项卡 - 格式化输入
- java - OpenCV JNI:Mat 的 Java/本机处理 - 删除被调用两次的可能性?
- cron - crontab 不发送邮件
- javascript - 我可以使用 ActionCable 刷新页面吗?
- sql - 如何将 unix 日期转换为雪花中的指定日期?