gpt4 book ai didi

python - 将包含字符串数组的 .mat 文件加载到 Python 3.6

转载 作者:行者123 更新时间:2023-12-03 19:08:43 25 4
gpt4 key购买 nike

我有一个 .mat 文件,其中包含两个字符串格式的 DateTime 数组。数组是这样的:

A = ["15-Nov-2014 22:42:16",
"16-Dec-2014 04:14:07",
"20-Jan-2015 17:05:32"]

我将这两个字符串数组保存在一个 .mat 文件中。我尝试使用以下命令在 Python 中加载它们:

import hdf5storage
Input = hdf5storage.loadmat('Input.mat')

或者这个命令:

import scipy
Input = scipy.io.loadmat('Input.mat')

两者都会导致读取 Python 中的字典,这是预期的,但我看不到这两个数组的名称作为字典键。

有什么想法吗?

最佳答案

我建议您将字符串转换为字符数组。

显然,没有用于从 HDF5 存储中读取 MATLAB 字符串的记录解决方案(MATLAB 字符串是对象,具有未记录的内部存储格式)。

在 MATLAB 中将字符数组保存到 Input.mat(不是 HDF5 格式):

A = ["15-Nov-2014 22:42:16"; "16-Dec-2014 04:14:07"; "20-Jan-2015 17:05:32"];

% Convert A from array of strings to 2D character array.
% Remark: all strings must be the same length
A = char(A); % 3*20 char array

% Save A to mat file (format is not HDF5).
save('Input.mat', 'A');

使用 scipy.io.loadmat 在 Python 中读取 A:

from scipy import io

# Read mat file
Input = io.loadmat('Input.mat') # Input is a dictioanry {'A': array(['15-Nov-2014 ...pe='<U20'), ...}

# Get A from Input (A stored in MATLAB - character arrays in MATLAB are in type utf-16)
A = Input['A']; # A is 2D numpy array of type '<U20' array(['15-Nov-2014 22:42:16', '16-Dec-2014 04:14:07', ...], dtype='<U20')

关于python - 将包含字符串数组的 .mat 文件加载到 Python 3.6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59635318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com