将此示例函数另存为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
的输出显示变量已加载到函数的本地工作空间中。我甚至可以在test_func
的第4行放置一个断点并输入alpha
并得到正确的结果,但是一旦我使用调试器向前迈出一步,它就会再次失败:函数{{ 1}}掩盖局部变量,我不明白为什么。
用{/ 1>替换alpha
的内容
test_func
工作正常,但这不是我想要做的。我想直接在函数的本地工作空间内加载变量。
对我而言,它看起来像一个错误(我正在使用Matlab R2011a),但是如果它是功能你可以解释它并帮我找到解决方法吗?
答案 0 :(得分:3)
function test_func
load('test.mat','alpha');
whos
alpha
另一个有用的方法是在调用加载
之前初始化变量function test_func
alpha = 0;
load('test.mat');
whos
alpha