Tableaux Matlab SciPy

NumPy fournit un moyen d'enregistrer des données dans un format lisible par Python.

SciPy fournit des méthodes pour interagir avec Matlab.

Le module scipy.io de SciPy fournit de nombreuses fonctions pour gérer les tableaux Matlab.

Exportation de données au format Matlab

savemat()La méthode peut exporter des données au format Matlab.

Les paramètres de la méthode sont :
  • filename- Le nom du fichier pour enregistrer les données.
  • mdict- Un dictionnaire contenant les données.
  • do_compression- Une valeur booléenne indiquant si les données résultantes sont compressées. Valeur par défaut : False.

Exportez le tableau vers un fichier mat en tant que variable "vec" :

Exemple

from scipy import io
import numpy as np

arr = np.arange(10)

io.savemat('arr.mat', {"vec": arr})

Remarque :Le code ci-dessus enregistre un fichier nommé "arr.mat" sur votre ordinateur.

Importation de données au format Matlab

La méthode loadmat() peut importer des données au format Matlab.

Les paramètres de la méthode :

  • filename- Le nom du fichier des données enregistrées.

Il renvoie un tableau structuré dont les clés sont des noms de variables et dont les valeurs correspondantes sont les valeurs des variables.

L'exemple suivant importe un tableau à partir d'un fichier mat :

Exemple

from scipy import io
import numpy as np

arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9,])

# Exporter
io.savemat('arr.mat', {"vec": arr})

# Import
mydata = io.loadmat('arr.mat')

print(mydata)

Le résultat renvoyé est le suivant :

{
   '__header__': b'MATLAB 5.0 MAT-file Platform: nt, Created on: Tue Sep 22 13:12:32 2020',
   '__version__': '1.0',
   '__globals__': [],
   'vec': array([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]])
 }
Utilisation du nom de variable "vec" pour afficher uniquement le tableau des données matlab :

Exemple

from scipy import io
import numpy as np

arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9,])

# Exporter
io.savemat('arr.mat', {"vec": arr})

# Import
mydata = io.loadmat('arr.mat')

print(mydata['vec'])

Le résultat renvoyé est le suivant :

[[0 1 2 3 4 5 6 7 8 9]]

D'après le résultat, vous pouvez voir que le tableau était à l'origine unidimensionnel, mais lorsqu'il est extrait, il gagne une dimension supplémentaire et devient un tableau bidimensionnel.

Pour résoudre ce problème, vous pouvez passer un paramètre supplémentaire.squeeze_me=True:

Exemple

from scipy import io
import numpy as np

arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9,])

# Exporter
io.savemat('arr.mat', {"vec": arr})

# Import
mydata = io.loadmat('arr.mat', squeeze_me=True)

print(mydata['vec'])

Le résultat renvoyé est le suivant :

[0 1 2 3 4 5 6 7 8 9]
Autres extensions