如何将多个.mat文件加载到python脚本中

如何将多个.mat文件加载到python脚本中,python,scipy,Python,Scipy,我想将38.mat文件加载到字典中,以保存它们。 .mat文件名为subject1到subject38 我尝试的代码是一个简单的for循环 import scipy.io as sio data = {} for i in range(1, 38): data["data{}".format(i)] = sio.loadmat('subject{}.mat'.format(i)) 我得到的错误是: 回溯(最近一次呼叫最后一次): 文件“D:/senior

我想将38.mat文件加载到字典中,以保存它们。 .mat文件名为subject1到subject38 我尝试的代码是一个简单的for循环

    import scipy.io as sio
    data = {}
    for i in range(1, 38):
        data["data{}".format(i)] = sio.loadmat('subject{}.mat'.format(i))
我得到的错误是:

回溯(最近一次呼叫最后一次): 文件“D:/senior project/python/dataaq.py”,第7行,在 data[“data{0}.format(i)]=sio.loadmat('subject{0}.mat'.format(i)) loadmat中第208行的文件“C:\Users\mamdo\AppData\Roaming\Python27\site packages\scipy\io\matlab\mio.py” matfile\u dict=MR.get\u变量(变量名称) 文件“C:\Users\mamdo\AppData\Roaming\Python27\site packages\scipy\io\matlab\mio5.py”,第292行,在get\u变量中 res=自读变量数组(hdr,进程) 文件“C:\Users\mamdo\AppData\Roaming\Python27\site packages\scipy\io\matlab\mio5.py”,第252行,在read\u var\u数组中 返回self.\u matrix\u reader.array\u from\u header(header,process) 文件“mio5_utils.pyx”,第675行,scipy.io.matlab.mio5_utils.VarReader5.array_,来自_头 文件“mio5_utils.pyx”,第705行,scipy.io.matlab.mio5_utils.VarReader5.array_中,来自_头 文件“mio5_utils.pyx”,第778行,位于scipy.io.matlab.mio5_utils.VarReader5.read_real_complex中 文件“mio5_utils.pyx”,第450行,在scipy.io.matlab.mio5_utils.VarReader5.read_numeric中 scipy.io.matlab.mio5_utils.VarReader5.read_元素中的文件“mio5_utils.pyx”,第355行 文件“streams.pyx”,第194行,在scipy.io.matlab.streams.ZlibInputStream.read_字符串中 scipy.io.matlab.pyalloc.pyalloc_v中的文件“pyalloc.pxd”,第9行
记忆错误

所以我发现了问题。如果出现错误,则mat文件不应由任何其他程序(如matlab)打开,请重新启动计算机


此外,如果存在内存问题,请尝试单独集成mat文件,执行所需的任何代码,然后加载下一个文件

对循环的注释:要加载后缀为1…38的矩阵,循环应该是范围(1,39)中i的
。关于错误消息:
.mat
文件有多大?每个.mat文件大约有250 MB。我重新启动了电脑,这个错误停止了,但现在由于文件大小的原因,python脚本遇到了内存问题。为什么必须同时加载它们?你能一次循环一个吗?我改变了代码,在循环中加载mat文件,这样mat文件就不会一次全部加载,而且可以正常工作。谢谢