主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

在系统对象中使用全局变量

全局变量是您可以在其他 MATLAB® 函数或 Simulink® 模块中访问的变量。

MATLAB 中的系统对象全局变量

对于仅在 MATLAB 中使用的系统对象,您可以在 System object™ 类定义文件中定义全局变量,其方式与在其他 MATLAB 代码中定义全局变量的方式相同(请参阅 全局变量)。

Simulink 中的系统对象全局变量

对于 Simulink 中的 MATLAB System 模块中使用的系统对象,您也可以像在 MATLAB 中一样定义全局变量。但是,要在 Simulink 中使用全局变量,如果您已经在 stepImplupdateImploutputImpl 调用的方法中声明了全局变量,则必须分别在 stepImplupdateImploutputImpl 方法中声明全局变量。

您可以按照与 MATLAB Function 模块相同的方式设置和使用 MATLAB System 模块的全局变量(参阅 数据存储访问 MATLAB Function 模块中的数据存储数据)。与 MATLAB Function 模块一样,您还必须使用与 Data Store Memory 模块匹配的变量名才能在 Simulink 中使用全局变量。

例如,此类定义文件定义了一个 System object,它在每个时间步骤将矩阵的第一行增加 1。如果文件是 P 编码的,则必须包含 getGlobalNamesImpl

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
该模型包括 MATLAB System 模块中的 GlobalSysObjMatrix 对象和相关的 Data Store Memory 模块。

另请参阅

主题