Wrong Values of Doubles from .mat file in C
Afficher commentaires plus anciens
I have a C program reading a .mat file. The file contains 2 1d arrays of doubles. The program gets a pointer to the beginning of an array of doubles by using mxGetDoubles(). It can successfully read all the values, however there appears to be a scaling problem when printing them with printf("%lf\n", ...) , e.g.
13.69798 displays as as 24.553575
48.94982 displays as as 57.016571
Matlab is R2022a
GCC is x86_64 V11.3.0 (MINGW running in Windows)
Could there be a difference in encoding? I thought they would both use IEEE 754 double encoding.
2 commentaires
Walter Roberson
le 28 Mar 2023
?? mxGetDoubles() is not (in itself) suitable for reading doubles from a .mat file.
Have you tested with https://www.mathworks.com/help/matlab/matlab_external/reading-a-mat-file-in-cc.html ?
Tony Whittam
le 29 Mar 2023
Modifié(e) : Tony Whittam
le 29 Mar 2023
Réponses (1)
Tony Whittam
le 29 Mar 2023
1 vote
Catégories
En savoir plus sur MATLAB Support for MinGW-w64 C/C++ Compiler dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!