Matlab - 我如何知道变量名是否可以自由使用

时间:2011-12-25 12:40:45

标签: matlab

在MatLab中你说:

E = cell(3,1);

我如何知道E是否已被使用且上述呼叫不会覆盖它?我是否必须运行该程序并在此时中断?解释器中有一种方法可以帮我吗?例如,在C ++中,编译器会告诉您是否尝试使用现有名称。

4 个答案:

答案 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)

您可以使用checkcodemlint对MATLAB文件进行静态分析,除其他事项外,还应报告变量是否在被函数使用之前被覆盖。

答案 3 :(得分:0)

要使用exists,必须先运行脚本,以便使用您正在使用的所有变量填充工作区。如果要在编写脚本时检查并查看变量名是否空闲,我最喜欢的检查方法是使用Matlab IDE中的tab键。它将调出所有自动完成选项。如果您之前在脚本或函数中定义了变量名“E”,则键入“E”应显示E作为选项,并提醒您不要使用该变量。

此外,最新版本的IDE引入了脚本中给定变量的所有用途的自动突出显示。只需将光标放在字母之间或变量名称的末尾即可。在视觉上检查脚本中变量名的所有用法非常方便。