'Matlab Coder' generated code is NEVER of double type (only real_T)
17 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Viren
am 4 Dez. 2013
Bearbeitet: Mike Hosea
am 26 Dez. 2013
I'm trying to convert a piece of matlab code into C++ code. I have one large vector (100+ elements) as input and one large vector as the output. Now, when I try to build the code using the Matlab Coder, while explicitly specifying that the input variable (u) is a DOUBLE, Matlab just seems to ignore my demands and does its own thing by creating the function with input variable of the type const real_T type instead.
This would not be so bad except that I need to use the resulting code with the Legacy_Code function in order to create an S Function. What can I do?
[Attached screenshot shows what is wrong]
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 4 Dez. 2013
and see the "19" answer at http://stackoverflow.com/questions/2386772/difference-between-float-and-double.
Notice that if you do not include the include file indicated there, you could go ahead with the legacy code tool and create the equivalence: http://www.mathworks.com/help/simulink/slref/legacy_code.html
legacy_code('compile', specs, compilerOptions)
example:
legacy_code('compile', s,...
{'-DCOMPILE_VALUE1=1', '-DCOMPILE_VALUE2=2',...
'-DCOMPILE_VALUE3=3'});
So you could '-Dreal_T=double'
1 Kommentar
Mike Hosea
am 26 Dez. 2013
Bearbeitet: Mike Hosea
am 26 Dez. 2013
The type real_T is already double. It is not float, which would be real32_T.
Weitere Antworten (3)
Ryan Livingston
am 5 Dez. 2013
Also if you are using MATLAB Coder in R2013b, you can request that C built-in types be used in the generated code for LIB, DLL and EXE targets:
That will use 'double' rather than 'real_T' in the generated code.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Simulink Coder finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!