【问题标题】:Error Recalling Data in GUI For Loop在 GUI For 循环中调用数据时出错
【发布时间】:2016-01-19 20:30:09
【问题描述】:

我有一个包含 for 循环的 GUI 回调,但与在脚本中运行相同的代码相比,循环结束后在循环内检索的数据/变量未被识别,而是 MATLAB 表示该变量未定义.该脚本在相同的输入下运行良好。我很清楚脚本和函数有不同的工作区,但这是否意味着结束循环后函数中的最新数据被遗忘了? 回调属于一个按钮,而我在该回调中处理的数据是象征性的。 我想知道是什么导致了这个问题

【问题讨论】:

标签: matlab function user-interface for-loop


【解决方案1】:

函数和脚本是有区别的。 函数有它们的局部变量。这些变量仅在该函数的范围内定义。函数内部与调用者范围隔离。交换数据的唯一方法是函数的输入和输出参数。 当程序流程到达一个函数时,所有变量都存储在堆栈中,函数的执行开始时除了输入参数之外没有任何变量。在函数退出时,函数中定义的所有局部变量都被删除,堆栈中存储的变量将返回到作用域。 为了规避这个机制,你可以使用

  1. 全局变量
  2. assignin 和 evalin 函数

但这不被视为过程编程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    • 2011-01-31
    • 2011-07-23
    相关资源
    最近更新 更多