Глобальные переменные являются переменными, к которым можно получить доступ в других функциях MATLAB® или блоках Simulink®.
Для Системных объектов, которые используются только в MATLAB, вы задаете глобальные переменные в Системе object™ файлы определения класса таким же образом, что вы задаете глобальные переменные в другом коде MATLAB (см. Глобальные переменные).
Для Системных объектов, которые используются в блоке MATLAB System в Simulink, вы также задаете глобальные переменные, как вы делаете в MATLAB. Однако, чтобы использовать глобальные переменные в Simulink, необходимо объявить глобальные переменные в stepImpl
updateImpl
, или outputImpl
метод, если вы объявили их в методах, вызванных stepImpl
updateImpl
, или outputImpl
, соответственно.
Вы настраиваете и используете глобальные переменные для блока MATLAB System таким же образом, как вы делаете для блока MATLAB Function (см. Хранилища данных (Simulink) и Осуществляйте обмен данными Глобально (Simulink)). Как блок MATLAB Function, необходимо также использовать имя переменной, соответствующее с блоком Data Store Memory, чтобы использовать глобальные переменные в Simulink.
Например, этот файл определения класса задает Системный объект, который постепенно увеличивает первую строку матрицы 1 на каждом временном шаге. Необходимо включать getGlobalNamesImpl
если файл класса является P-coded.
classdef GlobalSysObjMatrix < matlab.System methods (Access = protected) function y = stepImpl(obj) global B; B(1,:) = B(1,:)+1; y = B; end % Include getGlobalNamesImpl only if the class file is P-coded. function globalNames = getGlobalNamesImpl(~) globalNames = {"B"}; end end end
GlobalSysObjMatrix
объект в блоке MATLAB System и связанном блоке Data Store Memory.