在MatLab中你说:
E = cell(3,1);
我如何知道E是否已被使用且上述呼叫不会覆盖它?我是否必须运行该程序并在此时中断?解释器中有一种方法可以帮我吗?例如,在C ++中,编译器会告诉您是否尝试使用现有名称。
答案 0 :(得分:8)
根据this page,您应该使用命令exist
:
help exist
EXIST Check if variables or functions are defined.
EXIST('A') returns:
0 if A does not exist
1 if A is a variable in the workspace
2 if A is an M-file on MATLAB's search path. It also returns 2 when
A is the full pathname to a file or when A is the name of an
ordinary file on MATLAB's search path
3 if A is a MEX- or DLL-file on MATLAB's search path
4 if A is a MDL-file on MATLAB's search path
5 if A is a built-in MATLAB function
6 if A is a P-file on MATLAB's search path
7 if A is a directory
8 if A is a Java class
答案 1 :(得分:1)
使用:
if isempty (whos('E'))
% variable can be used
end
答案 2 :(得分:0)
您可以使用checkcode或mlint
对MATLAB文件进行静态分析,除其他事项外,还应报告变量是否在被函数使用之前被覆盖。
答案 3 :(得分:0)
要使用exists,必须先运行脚本,以便使用您正在使用的所有变量填充工作区。如果要在编写脚本时检查并查看变量名是否空闲,我最喜欢的检查方法是使用Matlab IDE中的tab键。它将调出所有自动完成选项。如果您之前在脚本或函数中定义了变量名“E”,则键入“E”应显示E作为选项,并提醒您不要使用该变量。
此外,最新版本的IDE引入了脚本中给定变量的所有用途的自动突出显示。只需将光标放在字母之间或变量名称的末尾即可。在视觉上检查脚本中变量名的所有用法非常方便。