2009-11-08 4 views
1

Il semble que je ne peux charger tout comme uint8 type juste avec les deux lignes,Scipy loadmat ne charge que des entiers?

import scipy.io X1 = scipy.io.loadmat ('one.mat')

tout double précision suivantes les nombres se transforment. Je crois que les créateurs de scipy sont conscients du fait que les nombres à virgule flottante sont beaucoup plus communs ...

Alors, que dois-je faire? Merci!

Répondre

1

Quel matfile essayez-vous de lire? Selon the docs,

v4 (niveau 1.0), et v7 v6 à 7,2 matfiles sont pris en charge.

Vous aurez besoin d'une bibliothèque python HDF5 pour lire les fichiers mat au format matlab 7.3. Parce que scipy n'en fournit pas, nous ne mettons pas en œuvre l'interface HDF5/7.3 ici.

Pour les niveaux supportés, les variables doivent être rechargées avec le type dtype avec lequel elles ont été enregistrées; Si vous préférez les charger comme matlab, ajoutez mat_dtype=True à la fin des paramètres avec lesquels vous appelez loadmat.

+0

Merci! J'ai sauvegardé des données avec la commande: "save -v4 data" et maintenant ça marche. Je souhaite toujours que vous puissiez implémenter l'interface afin que scipy devienne plus puissant et plus pratique. – mayasky

+0

Si par "l'interface" vous voulez dire HDF5, vous pouvez en obtenir un par exemple depuis http://h5py.alfven.org/ - pour savoir pourquoi il n'est pas encore intégré dans scipy, eh bien, depuis scipy (comme la plupart des open source) Tout est fait par des bénévoles, ce qui manque, c'est juste quelqu'un qui s'en soucie suffisamment pour être prêt à travailler pour que cela se produise! -) –

Questions connexes