Возможный способ обойти беспорядок global
- назначить переменную как appdata
.Вы можете использовать функции setappdata
и getappdata
для назначения и извлечения appdata
из окна MATLAB.Пока сеанс MATLAB активен, существует окно, обозначенное 0
.
>> setappdata(0,'x',10) % 0 indicates the root MATLAB window
. Теперь переменная x не видна ни одному скрипту или функции, но может быть доступна там, где это необходимо, используя getappdata
.
function test
globalX = getappdata(0,'x');
disp(globalX);
end
x =
10
Хорошей новостью является то, что вы можете назначить любой действительный объект MATLAB для appdata
, просто будьте осторожны с именами, используя уникальные имена для полей appdata, таких как ModelOptimizerOptions
вместо универсального * 1016.*, y
поможет.Это работает и для скомпилированных исполняемых файлов и кода, развернутых на производственном сервере MATLAB.