How to solve a matlab function on simulink? (output cannot be an mxArray in this context)

I'm using a matlab function on simulink like this:
function [u1,u2] = fcn(To,desf,clock)
t = clock;
F=1/To;
coder.extrinsic('square');
u1=square(2*pi*F*t);
u2=square(2*pi*F*(t-desf));
end
But appears this mistake:
Function output 'u1' cannot be an mxArray in this contextoutput 'u1' cannot be an mxArray in this context. Consider preinitializing the output variable with a known type. Function 'Controlador/Controlo/Modelador/MATLAB Function1' (#248.10.12), line 1, column 11: "u1" Launch diagnostic report.
How do I solve this?

Respuestas (1)

u1 = zeros(size(t));
u2 = zeros(size(t));
before doing the current assignments to u1 and u2.

2 comentarios

What if you don't know what the size of u1 and u2 will be? Is there a way around that?
I am not sure. You might be able to use coder.varsize

Iniciar sesión para comentar.

Preguntada:

el 3 de En. de 2019

Comentada:

el 20 de Oct. de 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by