Я новичок в Matlab и испытываю трудности с пониманием глобальных переменных. Например,global in Matlab
global x y z
Что означает global
? Не могли бы вы привести мне пример?
Я новичок в Matlab и испытываю трудности с пониманием глобальных переменных. Например,global in Matlab
global x y z
Что означает global
? Не могли бы вы привести мне пример?
Без global
объявленная переменная имеет ограниченный объем, то есть ее нельзя использовать вне «части» матрицы, где она объявлена. This wiki article имеет достойное обсуждение того, какая область охвата в общем смысле.
Например, если вы объявляете переменную внутри определения функции, эта переменная может использоваться только внутри этой функции, а не в другой функции. Если вы определяете функцию в командной строке (так называемое «базовое рабочее пространство»), ее нельзя использовать в функциях.
global
определяет переменную в "global" scope - ее можно использовать в любом месте, в любой функции и т. Д. За исключением ограниченных случаев, это, как правило, плохая идея, поскольку она позволяет контролировать, как и когда переменная сильно изменилась. Обычно вам лучше возвращать что-то из функции, а затем передавать ее другому.
Ключевое слово GLOBAL
в MATLAB позволяет вам определять переменные в одном месте и отображать их в другом. Заявление global x y z
объявляет x
y
и z
должно быть глобальным. Если это определение было помещено внутри области функций и соответствующее определение global
в отдельной функции, то две функции могут обмениваться данными без необходимости передавать параметры. Как так:
%% fcn1.m
function fcn1(val)
global store
store = val
%% fcn2.m
function y = fcn2()
global store
y = store;
Таким образом, вы можете вызвать fcn1
сохранить значение и использовать fcn2
для извлечения значения позже.
Использование GLOBAL
данных таким образом скрывает зависимости между вашими функциями и считается довольно плохой практикой.
Можно ли сказать, что глобальные переменные среди функций любят атрибуты в классе? – ibrahimyilmaz
Совсем нет. global определяет переменную, разделяемую каждой частью matlab. Фактически полная противоположность атрибутов класса. – Marc