Comment préserver matlab struct lors de l'accès en python?
J'ai un tapis de fichier que j'ai consulté à l'aide de
from scipy import io
mat = io.loadmat('example.mat')
De matlab, par exemple.tapis contient la structure suivante
>> load example.mat
>> data1
data1 =
LAT: [53x1 double]
LON: [53x1 double]
TIME: [53x1 double]
units: {3x1 cell}
>> data2
data2 =
LAT: [100x1 double]
LON: [100x1 double]
TIME: [100x1 double]
units: {3x1 cell}
Dans matlab, je peux accéder à des données aussi facile que de données2.LON, etc.. Il n'est pas aussi trivial en python. - Il me donner plusieurs option si comme
mat.clear mat.get mat.iteritems mat.keys mat.setdefault mat.viewitems
mat.copy mat.has_key mat.iterkeys mat.pop mat.update mat.viewkeys
mat.fromkeys mat.items mat.itervalues mat.popitem mat.values mat.viewvalues
Est possible de conserver la même structure en python? Si non, comment mieux accéder aux données? Le présent code python que j'utilise est très difficile de travailler avec.
Grâce
Pouvez-vous expliquer à quoi il ressemble quand vous chargez en python?
Aussi, une autre pensée. Si vous utilisez SciPi avez-vous essayé d'utiliser
oui, j'ai essayé loadmat. La sortie en python est juste difficile à utiliser. Je ne sais même pas comment accéder LON ou LAT dans data1 ou de données2.
Ma conjecture est qu'il est probablement juste
Si vous avez encore des questions (et ne me dérange pas/peuvent partager) n'hésitez pas à passer le long d'un échantillon .tapis de fichier et je vais jouer avec elle après je rentre du travail.
Aussi, une autre pensée. Si vous utilisez SciPi avez-vous essayé d'utiliser
SciPi.loadmat
?oui, j'ai essayé loadmat. La sortie en python est juste difficile à utiliser. Je ne sais même pas comment accéder LON ou LAT dans data1 ou de données2.
Ma conjecture est qu'il est probablement juste
data1['LAT']
(python), par opposition à data1.LAT
(matlab).Si vous avez encore des questions (et ne me dérange pas/peuvent partager) n'hésitez pas à passer le long d'un échantillon .tapis de fichier et je vais jouer avec elle après je rentre du travail.
OriginalL'auteur mikeP | 2012-08-14
Vous devez vous connecter pour publier un commentaire.
Trouvé ce tutoriel sur matlab struct et python
http://docs.scipy.org/doc/scipy/reference/tutorial/io.html
OriginalL'auteur mikeP
(!) Dans le cas de structures imbriquées enregistré dans
*.mat
fichiers, il est nécessaire de vérifier si les articles dans le dictionnaire deio.loadmat
sorties sont Matlab structures. Par exemple, si dans MatlabPuis utiliser le code par mergen dans scipy.io.loadmat structures imbriquées (c'est à dire les dictionnaires)
OriginalL'auteur Braulio Barahona
Quand j'ai besoin de charger des données en Python à partir de MATLAB qui est stocké dans un tableau de struct {strut_1,struct_2} j'ai extrait une liste de clés et de valeurs de l'objet que je charge avec
scipy.io.loadmat
. Je peux ensuite assembler ces vers leur propre variables, ou en cas de besoin, les reconditionner dans un dictionnaire. L'utilisation de laexec
commande peut ne pas être appropriée dans tous les cas, mais si vous essayez juste de processus de données, il fonctionne bien.OriginalL'auteur Austin Downey