将此示例函数另存为test_func.m
:
function test_func
load test.mat
whos
alpha
并运行此示例脚本:
alpha = 3;
save test.mat
test_func
这是我得到的输出:
Name Size Bytes Class Attributes
alpha 1x1 8 double
??? Error using ==> alpha at 40
Not enough input arguments.
Error in ==> test_func at 4
alpha
的输出whos
显示变量已加载到函数的本地工作区中。我什至可以在第 4 行设置断点test_func
并输入alpha
,我得到了正确的结果,但是一旦我使用调试器向前迈出一步,它就会再次失败:函数alpha
正在屏蔽局部变量,我不明白为什么.
替换test_func
by的内容
p = load('test.mat');
p.alpha
工作正常,但这不是我想要做的。我想直接在函数的本地工作区中加载变量。
对我来说,它看起来像一个错误(我使用的是 Matlab R2011a),但如果它是一个功能,你能解释一下并帮助我找到解决方法吗?