import tables from Matlab struct to matrices in python
이전 댓글 표시
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
답변 (1개)
ProblemSolver
2023년 7월 5일
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
Mayssa Chouat
2023년 7월 5일
ProblemSolver
2023년 7월 5일
편집: ProblemSolver
2023년 7월 5일
Could you provide the file.mat, so that I can view what is exact data type of the matlab file.
Plus, you can try 'flatten()' to convert the nested array into a 1-D array, and then use astype(np.datatype), where the datatype should be exactly be the same datatype of the matlab "mat" file.
You can try this way as well:
Mayssa Chouat
2023년 7월 5일
ProblemSolver
2023년 7월 5일
편집: ProblemSolver
2023년 7월 5일
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.

카테고리
도움말 센터 및 File Exchange에서 Call Python from MATLAB에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
