step

Executa um passo de processamento de um objeto System.

Categoria: Programming > Classes

Sintaxe

y = step(obj, x)

Processa a entrada x e retorna a saída de um passo. Equivale a y = obj(x).

[y1, y2] = step(obj, x1, x2)

Passa várias entradas e coleta várias saídas, conforme o stepImpl da classe.

Descrição

Um objeto System é uma classe handle derivada de matlab.System, cujo trabalho é feito por stepImpl. A primeira chamada a step executa setupImpl, trava o objeto e depois executa stepImpl; as seguintes executam só stepImpl, de modo que o objeto guarda estado entre as chamadas, como o total acumulado de um contador.

step pode ser escrito como chamada de função no próprio objeto: y = obj(x) faz o mesmo. Para recomeçar sem descartar o objeto, chame reset; para destravá-lo, release.

Argumentos de entrada

obj
Um objeto System.
x, x1, x2
Argumentos de entrada, tantos quantos o stepImpl declara.

Argumentos de saída

y, y1, y2
Saídas retornadas por stepImpl.

Exemplo

Processamento com estado

writelines([ ...
  "classdef Counter < matlab.System", ...
  "  properties", "    Total = 0", "  end", ...
  "  methods (Access = protected)", ...
  "    function setupImpl(obj)", "      obj.Total = 100;", "    end", ...
  "    function y = stepImpl(obj, u)", "      obj.Total = obj.Total + u;", "      y = obj.Total;", "    end", ...
  "    function releaseImpl(obj)", "      disp('released')", "    end", ...
  "  end", "end"], 'Counter.m');
c = Counter;
y1 = step(c, 5)
y2 = c(7)
Saída
y1 = 105
y2 = 112

O primeiro passo executa setupImpl (total 100) e soma 5; a segunda chamada, escrita como c(7), soma 7.

Veja também

setup release reset isLocked clone