1
SimulinkのMATLAB Functionブロックでは、永続変数を実装できます。しかし、MATLABの関数ブロックやその他の同様のスクリプティング手法を使用することなく、誰かが同じことをどのように実装するのでしょうか?言い換えれば、Simulinkの永続変数の動作を基本/基本ブロック(外部ツールボックスなし)で複製することは可能ですか?Simulinkで永続変数に相当するものを実装する方法は?
function y = fcn(u)
%#codegen
persistent n;
if isempty(n) %%initialize persistent variable
n = 1;
end
if u == 4 || n == 1
y = 0;
n = 2;
elseif n == 2
if ...
n = 1;
else ...
n = 3;
end
else
n = -1;
end
このような永続メモリは[ユニット遅延](https://www.mathworks.com/help/simulink/slref/unitdelay.html)と同等です。あなたの例では、初期条件は1で、ブロック出力は_old_nであり、コード内のロジックは_new_nである(単位遅延)ブロック入力信号を計算するために使用されます。 –