Calling a Function in Matlab function block in Simulink.

4 visualizaciones (últimos 30 días)
Prateek Tiwari
Prateek Tiwari el 30 de Jun. de 2020
Comentada: VIGNESH BALAJI el 31 de Oct. de 2023
Hello,
I want to call a function from a defined directory inside a matlab function block. I know that it can be done using 'coder.extrinsic () '. However I still get error as below
Expected either a logical, char, int, fi, single, or double. Found an mxArray.
MxArrays are returned from calls to the MATLAB interpreter and are not supported inside expressions.
They may only be used on the right-hand side of assignments and as arg
I know this can be solved by intitializing the variables, however in my case finding a required size is difficult and I do not know how else can I solve this, Is there anyway to intialize without defining a specific dimension of the variable?. I have also attached a picture of my function, please find below.
  1 comentario
VIGNESH BALAJI
VIGNESH BALAJI el 31 de Oct. de 2023
Did you face any problems while calling user defined functions inside matlab function block ? I faced this issue. If you have figured out a way, let me know

Iniciar sesión para comentar.

Respuestas (1)

Vidhathri LNU
Vidhathri LNU el 3 de Jul. de 2020
You can declare those variables as variable sized with an upper bound on the size. That should solve the issue
function y = myfun(x)
coder.varsize('y', [1024 2]); %x must never exceed 1024
coder.extrinsic('fun');
y = zeros(x, 2); %pre-declare the type and size of y
y = fun(x);
Refer to the documentation here for more details on using coder.varsize.
  1 comentario
Prateek Tiwari
Prateek Tiwari el 3 de Jul. de 2020
Thank you for your response.
I already tries using coder.varsize(). In simulink it says this call back is not supoorted (MATLAB 2019B).

Iniciar sesión para comentar.

Categorías

Más información sobre Simulink Functions en Help Center y File Exchange.

Productos


Versión

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by