背景
我习惯了强类型的、编译的语言,所以我习惯了拼写错误会被当做未声明的变量来处理。
然而,由于Matlab是一种弱类型语言,这不会自动发生,我的开发周期倾向于:
write function(s)
|
˅
Run <-------------------------
| |
˅ |
Crash due to misspelling/typo |
| |
˅ |
Correct typo -----------------|在遇到输入错误之前,运行过程可能会运行几分钟,这会大大减慢我的开发周期。
我使用的是matlab版本2007b
问题
有没有办法验证一个函数,以便在不运行整个程序的情况下使用不存在的变量等?考虑到每个函数都有自己的变量空间,这似乎是可能的。
我知道可以使用depfun获得依赖项列表,但是我还没有找到任何方法来验证这些函数。
例如,以下函数将始终失败,但在运行之前不会产生警告
function [biggest]=getBiggest(variableName1, variableName2)
if variablename1>variableName2, %<---misspelling!
biggest=variableName1;
else
biggest=variableName2;
end
end发布于 2014-02-04 21:24:21
我怀疑您正在使用不同的编辑器,或者您更改了警告首选项。
在转到home > preferences > code analyzer时,请确保您启用了包含以下内容的版本:
无法确定是否...是变量或函数
发布于 2014-02-04 21:18:33
MATLAB Linter通常会提取赋值前使用的变量(例如,因为它是一个打字错误),但它并不完美。它在图形用户界面中默认启用(至少在R2011b中),但也可以在MATLAB之外运行:http://www.mathworks.com/help/matlab/ref/mlint.html
发布于 2014-02-04 21:16:07
Code Analyzer应该能捕捉到大多数这样的东西。
https://stackoverflow.com/questions/21553530
复制相似问题