MATLAB: How to dynamically define the data type of a persistent variable depending on the type of the input signal in an Embedded MATLAB function block in Simulink 7.6 (R2010b)

automatic;classdataembeddedMATLABsimulinktype

I am looking for a way to create a persistent variable which dynamically derives its data type from the input Signal in an Embedded MATLAB function block. I know that it is possible to define inputs, parameters and outputs in the Embedded MATLAB function's 'Ports and Data Manager', however I don't know how to automatically set the data type of a variable.

Best Answer

You can use the CLASS function (as shown in the attached emlpersistenttype.mdl) to query the data type of the input signal and use this information when initializing the persistent variable, i.e.:
persistent x
if isempty(x)
x=zeros(10,class(u));
end