import tables from Matlab struct to matrices in python

61 Ansichten (letzte 30 Tage)
Mayssa Chouat
Mayssa Chouat am 5 Jul. 2023
Bearbeitet: ProblemSolver am 5 Jul. 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

Antworten (1)

ProblemSolver
ProblemSolver am 5 Jul. 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 Kommentare
Mayssa Chouat
Mayssa Chouat am 5 Jul. 2023
This is my .mat file and it only stores a 1*1 struct with 8 fields
ProblemSolver
ProblemSolver am 5 Jul. 2023
Bearbeitet: ProblemSolver am 5 Jul. 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.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Call Python from MATLAB finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by