coder.ceval for printf from stdio.h
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Tomas Jurena
am 27 Mai 2012
Kommentiert: Kevin Berndsen
am 18 Mär. 2015
Hello, everybody! I'd like to generate C code from an m-file which makes use of MATLAB fprintf function as follows:
fprintf('Time level %-*.*f [s], Iterations: %d\n',field_width,precision,time,iter);
Since fprintf is not supported for the code generation, nor can I use coder.extrinsic method, I turn to a question:
How to rewrite the command using coder.ceval method and the standard C library function printf? To be more specific, what should the arguments be like in coder.ceval('printf', arguments); ?
While not using field_width and precision, C code generated from the following one executes without a problem:
s1=['%s%f%s%d' 10 0];
s2=['Time level ' 0];
s3=['[s], Iterations: ' 0];
coder.ceval('printf',s1,s2,time,s3,int32(iter));
However, including the asterisks and left-justify options cause segmentation fault whenever the generated C code is compiled, built and run. Any help is appreciated!
3 Kommentare
Akzeptierte Antwort
Fred Smith
am 30 Mai 2012
This example worked for me:
function simple_printf
s1=['%s%-*.*f%s%d' 10 0];
s2=['Time level ' 0];
s3=['[s], Iterations: ' 0];
iter = 32;
time = 2.5;
field_width=int32(20);
precision=int32(3);
coder.ceval('printf',s1,s2,field_width,precision,time,s3,int32(iter));
Is your code different?
-Fred
2 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu MATLAB 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!