fscanf/Pointing to a file in MATLAB Coder?
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello, I am new to MATLAB coder and I am having some trouble translating the way I translate fscanf using coder.ceval. I know codegen supports fopen but not fscanf. Here's what I have:
coder.cinclude("<stdio.h>");
f = fopen(z,'r');
f = coder.opaque('FILE*','NULL');
coder.ceval('fscanf',f,formatSpec, A); %should read in values into 2-by-x double array
fclose(f);
z is a string and the name of the file, formatSpec is '%d %d' and A is the appropriate size. How do I get the pointer to the file to be z? Any suggestions would be appreciated.
0 commentaires
Réponses (1)
Ryan Livingston
le 17 Août 2018
Modifié(e) : Ryan Livingston
le 17 Août 2018
Check out the example:
which shows using fread via coder.ceval. You should be able to switch:
f = coder.opaque('FILE*','NULL');
f = fopen(z,'r');
Also don't forget to NULL-terminate your strings before passing to C. That example uses a helper function:
% Create a NUL terminated C string given a MATLAB string
function y = c_string(s)
y = [s 0];
like so:
f = fopen(c_string(z),c_string('r'));
You'll need to preallocate A before reading into it and call coder.ceval('fclose',f) like the documentation example shows.
0 commentaires
Voir également
Catégories
En savoir plus sur MATLAB Coder dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!