Effacer les filtres
Effacer les filtres

import tables from Matlab struct to matrices in python

122 vues (au cours des 30 derniers jours)
Mayssa Chouat
Mayssa Chouat le 5 Juil 2023
Modifié(e) : ProblemSolver le 5 Juil 2023
I want to import tables from a struct in matlab and to store them in python as matrices.
this is the python code I tried
import scipy.io
import numpy as np
# Load the .mat file
data = scipy.io.loadmat('file.mat')
# Access the struct within the loaded data
my_struct = data['structkey']
# Convert each table to a matrix
table1_matrix = my_struct['table1'][0, 0]['arr']
print(table1_matrix)
this is whatwas printed:
[array([[3707764736],
[ 2],
[ 1],
[ 1],
[ 1],
[ 1]], dtype=uint32)]
I can't understand what is printed and don't know what to do to get the table stored in the struct as matrice in python

Réponses (1)

ProblemSolver
ProblemSolver le 5 Juil 2023
You need to careful about the datatype that you are working with.
I assume you are working with uint32, which is an unsigned 32-bit integer. Therefore, you have convert the data structure of the table:
table1_matrix = np.array(my_struct['table1'][0, 0]['arr'], dtype=np.float64)
I hope this helps!
  4 commentaires
Mayssa Chouat
Mayssa Chouat le 5 Juil 2023
This is my .mat file and it only stores a 1*1 struct with 8 fields
ProblemSolver
ProblemSolver le 5 Juil 2023
Modifié(e) : ProblemSolver le 5 Juil 2023
Try using this then:
import scipy.io
data = scipy.io.loadmat('file.mat');
temperature1 = data['your_field_temperature'] % replace 'm' with the field name that you have such as temperature_r..., the complete name
. % create each variable name
. % another variable and so on
print(temperature1)
This is the output I get.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Call Python from MATLAB dans Help Center et File Exchange

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by