在GUI For循环中调用数据时出错

时间:2015-10-21 00:55:59

标签: matlab function user-interface for-loop

我有一个包含for循环的GUI回调,但与在脚本中运行相同代码相比,循环结束后在循环内检索的数据/变量未被识别,而MATLAB表示该变量未定义。该脚本使用相同的输入正常运行。我很清楚脚本和函数有不同的工作空间,但这是否意味着在结束循环后函数中的最新数据被遗忘了? 回调属于一个按钮,而我在该回调中处理的数据是符号。 我想知道造成这个问题的原因

1 个答案:

答案 0 :(得分:0)

功能和脚本之间存在差异。 函数有其局部变量。这些变量仅在该函数的范围内定义。函数内部与调用者范围隔离。交换数据的唯一方法是函数的输入和输出参数。 当程序流程到达函数时,所有变量都存储在堆栈中,并且除了输入参数外,函数的执行没有任何变量。在函数退出时,将删除函数中定义的所有局部变量,并将堆栈中存储的变量返回到作用域。 要绕过这种机制,您可以使用

  1. 全局变量
  2. assignin和evalin函数
  3. 但这不被视为程序式编程。