2013-09-11 2 views
0

У меня есть сомнения в использовании глобальных переменных в Matlab. Должен ли я объявлять все глобальные переменные в любой подпрограмме или только когда мне это понадобится? И если подпрограмма (т. Е. Функция1.1) внутри другой (например, функция1) разделяет только глобальную переменную с основной программой, я должен также объявить их в промежуточной (т. Е. Функции1)?Использование глобальных переменных в matlab

Я попытаюсь быстро устранить случай с короткой схемой.

Основная программа

global a b c 

Функция 1

global a 

Функция 1,1

global ab 

Функция 2

global c 

Было бы правильно?

+2

** Pro tip **: Избегайте глобальных переменных вообще. Если функция должна что-то знать, передайте ее в качестве аргумента! Что касается вашего вопроса, вам не хватает пробела между 'a' и' b' в 'global ab' ... –

+1

[Have a read] (http://c2.com/cgi/wiki?GlobalVariablesAreBad) о том, почему большинство программисты посоветуют вам избегать глобальных переменных. –

+0

Я передаю переменные как аргументы, когда это возможно. Моя проблема в том, что я на третьем уровне (т. Е. Подфункция 1.1), а родительская функция не знает данных. Я программирую более 100 переменных. Абсолютная ошибка - это ошибка, но спасибо за исправление. – user2768062

ответ

0

Вам нужно только объявить их, если они вам нужны в рамках функции.

Но будьте осторожны с их использованием. Вы найдете несколько сообщений, объясняющих проблемы с глобальными переменными.

Смежные вопросы