如何解决不可用的类型错误?

时间:2015-06-21 05:26:11

标签: python python-2.7

我正在尝试在单个矩阵中加载三个.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切片。后来我试图绘制图像。但我反复得到可出现的类型错误或内存错误。

1 个答案:

答案 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,:,:]