【问题标题】:Matlab: How to return output from a function in a set()?Matlab:如何从 set() 中的函数返回输出?
【发布时间】:2014-09-22 01:44:48
【问题描述】:

我现在正在使用Matlab GUI,并且在从 set() 设置的函数访问返回值时遇到问题。

情况:
我将windowMotionFcn 设置如下:

set(gcf,'WindowButtonMotionFcn',@test);

函数 'test' 可以返回 2 个变量(命名为 var1 和 var2)。但我不知道如何存储它们...
我在互联网上搜索过,没有找到任何方法。

我应该怎么写?

感谢您的帮助和关心。

【问题讨论】:

  • 您希望如何存储数据?你想在另一个回调中使用它吗?您想在输出面板中显示它吗?是否要将其保存到文件中?
  • 你试过set(gcf, 'WindowButtonMotionFcn', [@test]),还是set(gcf, 'WindowButtonMotionFcn', {@test})
  • 嗨@excaza,我想存储我的变量,例如:[storeVar1 storeVar2] = test Thx a lot
  • 嗨@JayInNyc,我之前试过你的代码,但它没有用。 {} 用于将输入参数传递给测试函数。谢谢你的帮助。 :)

标签: matlab function user-interface set handles


【解决方案1】:

我认为您要做的是从回调函数中返回一个值。关于从回调中返回一个值,我不确定这是可能的。我从matlab newsreader 找到了一篇旧文章。我认为您的问题可能类似。

但是,如果您有一个 matlab GUIDE GUI,则有一种方法可以从 gui 返回一个值。它在 matlab central: advanced-getting-an-output-from-a-guide-gui 的 matlab 教程中进行了描述。您必须做的是修改您的CloseRequestFcn 和您的OutputFcn

另一种可行的方法是使用全局变量。全局工作空间中存在一个全局变量。这意味着它可以被 matlab 中的每个函数看到和访问。在大多数情况下不建议使用全局变量,但如果不存在其他解决方案,它们可能是必需的。只需确保记录它们,以便下一个接管您的代码的人知道它们在那里。还要确保为全局变量选择一个好的名称,例如 gblMyVar,这样就不会混淆变量是全局变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-31
    • 2022-10-07
    • 1970-01-01
    • 1970-01-01
    • 2016-09-28
    • 2014-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多