首页 > 解决方案 > matlab在按钮单击时附加相同变量的不同值

问题描述

所以我在 matlab 应用程序设计器中执行此操作,我有一个x在每次单击按钮时都会更改的变量,我想将每个值添加x到数组中以找到平均值。在第一次点击时说xis 10,第二次点击xis ,2第三次点击xis 9,我想要一个数组 values 等于[10 2 9]。每次我尝试过时,它都会包含最新的x值。以下是我尝试过的。

function GenerateButtonPushed(app, event)
x = (randi[1 30]);
values = [];
values(end+1) = x;
average = mean(values)

我可以看到问题是什么,每次按下按钮时,它都会将数组重置为空,但我不知道如何解决这个问题。感谢建议,谢谢!

标签: matlab

解决方案


您需要在回调函数之外存储您的值。一种方法是使用setappdataand 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', []).

在此处查看示例

注意我建议阅读函数中变量的“范围”,以便您了解它们为什么不持久。


推荐阅读