【问题标题】:How to make every variable in Matlab workspace accessible to every function?如何让每个函数都可以访问 Matlab 工作区中的每个变量?
【发布时间】:2015-02-14 16:46:46
【问题描述】:

当我从命令窗口运行 Matlab 脚本时,它运行正常。这个脚本使用函数,所以我必须将变量设为全局变量。

现在,当我从 GUI 中切换按钮的回调函数运行此脚本时,我遇到了错误。错误似乎来自可访问的变量。

我错过了什么吗?这种问题有什么解决办法?

【问题讨论】:

  • 请包含错误消息和代码以重现问题。我不知道你在做什么。 “这个脚本使用函数,所以我必须使变量成为全局变量。”你是什么意思?调用函数时无需将变量设为全局变量。
  • @Daniel :你说得对,使用函数时没有必要将变量设为全局变量,但由于没有。正在使用变量,我将它们设为全局而不是传递它们。错误读取从 GUI 运行脚本时未定义变量。谢谢!

标签: matlab function user-interface callback


【解决方案1】:

从回调函数运行脚本时,脚本可以访问“调用者”函数的工作区,即回调函数工作区,而不是基础工作区。您需要确保每个函数都可以访问所需的变量,方法是使它们成为全局变量,或者优先将它们作为参数传递给函数。这样,代码的可移植性更高,并且不依赖于基础工作区中可能存在或不存在的变量。在 GUI 中,您可以使用 handles 结构来存储回调函数执行所需的数据。

【讨论】:

  • 我曾尝试过这种方式,但仍然出现错误。阅读您的答案后,我意识到错误似乎来自未定义的变量,但实际上,由于某些逻辑错误,它们未定义。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多