在MATLAB的GUI编程中自定义的外部函数怎么不能调用内部的数据?
2个回答
展开全部
背景知识
函数有自己独立的工作区,其使用的任何变量只可能是以下几种情况:
1、全局或静态变量:可以在函数的多次调用过程中保留结果不变,必需在函数体内用global或persistent明确声明;
2、输入输出参数:作为函数与外部交换数据的主要手段颤此(除输入输出参数,另一种数据交换手段是使用全局变量,但一般不推荐这种方式);
3、局部变量:除前两种情况之外的变量都是局部变量。局部变量只在函数的一次尺闷调用过程中产生,函数返回后,这些局部变量也就消失了。
错误分析
在你所定义的f1函数中,handles既不是第1种,也不是第2种,那么只会被视为局部变量;而作为局部变量的handles在使用之前并未赋值,那么自然会出现“未定义变量”的错误了。
陵洞弯
解决方案
解决的方法有两种:一是使用全局变量,但不推荐这种做法,就不具体说了;二是把handles作为输入参数传递到函数,具体做法是:
1、函数的定义改成
function y=f1(x,handles)
2、记住调用函数的时候也要多一个参数,例如:
...=f1(...,handles);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询