mex codegen issue: Class insfilterNonholonomic is not supported by coder.Type as it is a handle class.
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
fixusc
el 17 de Dic. de 2021
Comentada: fixusc
el 22 de Dic. de 2021
Dear Matlab community,
I have a function (see attachment) that I would like to compile to c++ to increase performance and I am following this tutorial. When I run
load('KFmex_data.mat');
codegen -report KFmex.m -args {KF,t_imu,Accel,Gyro,t_gnss,Pos,Vel,Rpos,Rvel,GNSS_step} -test -test;
I get the following error:
Function input at args{1} does not have a valid type.
Caused by:
Class insfilterNonholonomic is not supported by coder.Type as it is a handle class.
Use help codegen for more information on using this command.
Error using codegen
However, according to the documentation of insfilterNonholonomic, this should be fully supported. What am I doing wrong here? Is this a bug?
Any kind of help is much appreciated!
0 comentarios
Respuesta aceptada
Gargi Patil
el 20 de Dic. de 2021
Hi,
Code generation does not support handle class objects as entry point arguments. You can refer to the linked documentation for more information. Therefore, insfilterNonholonomic objects can not be passed as inputs to a code generation function.
However, the code generation support indicated in the documentation of insfilterNonholonomic allows usage of its objects within the function as follows:
function [state,covariance,stddev] = KFmex(t_imu,Accel,Gyro,t_gnss,Pos,Vel,Rpos,Rvel,GNSS_step) %#codegen
%%KF as an arugment has been removed
KF = insfilterNonholonomic; %Example
%%Code generation will not throw an error
j = 1;
k = 1;
...
end
Kindly note that loading the variable KF within the function using the load command is not viiable for the same reason as above.
2 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Generating Code en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!