Matlab - как узнать, свободно ли использовать имя переменной - PullRequest
3 голосов
/ 25 декабря 2011

В MatLab говорят, что вы делаете:

E = cell(3,1);

Как мне узнать, используется ли уже E, и вызов выше не отменяет его? Должен ли я запустить программу и прервать ее в этот момент? Есть ли в переводчике метод, который сделает это для меня? Например, в C ++ компилятор сообщит вам, пытаетесь ли вы использовать существующее имя.

Ответы [ 4 ]

8 голосов
/ 25 декабря 2011

Согласно этой странице , вы должны использовать команду 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 голос
/ 25 декабря 2011

Использование:

if isempty (whos('E'))
  % variable can be used
end
0 голосов
/ 26 декабря 2011

Чтобы использовать существующий, вы должны сначала запустить скрипт, чтобы в рабочее пространство были включены все переменные, которые вы используете.Если вы хотите проверить и увидеть, свободно ли имя переменной при написании сценария, мой любимый способ проверить это - использовать клавишу табуляции в Matlab IDE.Появятся все опции автозаполнения.Если вы ранее определили переменные с именами «E» в своем скрипте или функции, при наборе «E» в качестве опции будет отображаться буква «E», которая предупредит вас о том, что вы не должны использовать эту переменную.

Кроме того, последняя версияВ IDE введено автоматическое выделение всех применений данной переменной в скрипте.Просто поместите курсор между буквами или в конце имени переменной.Весьма удобно визуально проверять все варианты использования имени переменной в вашем скрипте.

0 голосов
/ 26 декабря 2011

Вы можете использовать контрольный код или mlint для статического анализа файлов MATLAB, который, помимо прочего, должен сообщать о перезаписи переменной перед использованием в функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...