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

5 vues (au cours des 30 derniers jours)
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?

Réponses (1)

Walter Roberson
Walter Roberson le 4 Jan 2019
u1 = zeros(size(t));
u2 = zeros(size(t));
before doing the current assignments to u1 and u2.
  2 commentaires
Rafael Cordero
Rafael Cordero le 20 Oct 2020
What if you don't know what the size of u1 and u2 will be? Is there a way around that?
Walter Roberson
Walter Roberson le 20 Oct 2020
I am not sure. You might be able to use coder.varsize

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by