Эта ошибка возникает в строке, где вы объявляете переменную глобальной, но эта переменная уже используется в качестве локальной переменной:
baz = 3;
% ... much later...
global foo bar baz
Чтобы узнать, какая из этих переменных уже была определенаВы можете установить точку останова в строке global
и посмотреть, какие переменные существуют в данный момент.
Вы также можете добавить команду who
непосредственно перед этой строкой и наблюдать вывод консоли вашей программы.непосредственно перед генерацией предупреждения.
Как только вы нашли имя переменной, которая вызывает ошибку, вы можете переименовать переменную local с этим именем, оставив global переменная без изменений.
Привет @flawr и @SardarUsama, которые помогли выяснить значение этого предупреждения в чате MATLAB .
Ниже приведена часть исходного ответа, которая показывает способ определения глобальности переменных.
Как @ Durkee предложил , whos global
выведет глобальный списоквriables.Вы можете использовать это программно для проверки «глобальности»:
~isempty(whos('global','varname'))
(обратите внимание, что isglobal
раньше была функцией в MATLAB , но с тех пор была удалена).