Main Content

getOutputSizeImpl

类: matlab.System

输出端口的大小

语法

[sz_1,sz_2,...,sz_n] = getOutputSizeImpl(obj)

说明

[sz_1,sz_2,...,sz_n] = getOutputSizeImpl(obj) 返回每个输出端口的大小。输出数目必须匹配从 getNumOutputs 方法返回的值,或 stepImpl 方法中列出的输出参量的数目。

如果您的 System object™ 只有一个输入和一个输出,而且您希望输入和输出的大小相同,则不需要实现此方法。在这种情况下,getOutputSizeImpl 假定输入和输出的大小相同,并返回输入的大小。对于 MATLAB® 中的可变大小输入,每次运行对象时,大小都会更改。对于 Simulink® 中的可变大小输入,输出大小是最大输入大小。

在下列情况下,您必须实现 getOutputSizeImpl 方法来定义输出大小:

  • 您的 System object 有一个以上的输入或输出

  • 您需要输出和输入具有不同的大小。

    如果输出和输入的大小不同,您还必须使用 propagatedInputSize 方法

默认情况下,在 Simulink 中,MATLAB System (Simulink) 模块识别一维输入信号,并将一维输出信号作为二维信号传播。使用 supports1DVectorsImpl 方法使一维输入和输出能够分别作为一维信号识别和传播。

运行时详细信息

在 Simulink 模型编译和传播期间,MATLAB System (Simulink) 模块会调用 getOutputSizeImpl 方法来确定输出的大小。

所有输入均默认为可变大小输入。对于这些输入,输出大小是最大输入大小。

方法编写提示

  • 您必须先对此方法设置 Access = protected

  • 在此方法中,您不能修改任何属性。

输入参数

全部展开

System object 句柄,用于访问特定于该对象的属性、状态和方法。如果您的 getOutputSizeImpl 方法不使用该对象,您可以用 ~ 替换此输入。

输出参量

全部展开

包含每个输出端口的大小的向量。

示例

全部展开

在您的类定义文件中指定 System object 输出的大小。

methods (Access = protected)
   function sz_1 = getOutputSizeImpl(obj)
      sz_1 = [1 1];
   end 
end

在您的类定义文件中指定多个 System object 输出的大小。

methods (Access = protected)
   function [sz_1,sz_2] = getOutputSizeImpl(obj) 
      sz_1 = propagatedInputSize(obj,1); 
      sz_2 = [1 1]; 
   end
 end 

如果 System object 的输出大小取决于传播的输入大小,可在类定义文件中指定输出大小。

methods (Access = protected)
   function varargout = getOutputSizeImpl(obj) 
      varargout{1} = propagatedInputSize(obj,1); 
      if obj.HasSecondOutput
         varargout{2} = [1 1];
      end
   end
end 

版本历史记录

在 R2013b 中推出

另请参阅

主题