我正在尝试在单个矩阵中加载三个.mat文件。所有这些都是1024 * 1024 * 120。但我反复得到一个不可避免的类型错误。我甚至用过' del'在矩阵中加载后删除每个文件。我可以做些什么来解决这个错误?
以下是我的代码:
import scipy.io
import numpy as np
mat = np.zeros((1024,360))
x = scipy.io.loadmat('/home/prakriti/Project/A.mat')
mat[:,0:120]= x[240,:,:]
del x
y = scipy.io.loadmat('/home/prakriti/Project/B.mat')
mat[:,120:240]= y[240,:,:]
del y
z = scipy.io.loadmat('/home/prakriti/Project/C.mat')
mat[:,240:360]= z[240,:,:]
del z
import matplotlib.py as plt
imageplot = plt.imshow(matrix)
以下是错误:
追踪(最近一次通话): 文件" /home/prakriti/Project/p.py" ;,第8行,in mat [:,0:120] = x [240,:,] TypeError:不可用类型
我已经获得了一个1024 * 1024 * 360的.mat文件,即3D对象。我已将数据分成三个.mat文件A,B和C.它们都是1024 * 1024 * 120。我正在加载它们到一个矩阵' mat'这是1024 * 360。我逐个加载它们中的每一个然后删除它们以腾出空间。基本上它只是点240处3D物体的2D切片。后来我试图绘制图像。但我反复得到可出现的类型错误或内存错误。
答案 0 :(得分:0)
你看过x
的类型了吗? ScyPi加载matlab struct
- 数据作为python词典,:
不可清除:
x = {}
x[:] -> TypeError unhashable type
您可能希望首先提取结构的正确字段:
data = scipy.io.loadmat('/home/prakriti/Project/A.mat')
x = data['x'] # depends on the structure of A.mat
mat[:,0:120]= x[240,:,:]