El objeto ‘lista’ no tiene el atributo ‘items’ para guardar una lista de matriz como archivo mat.
Quiero guardar una lista de arrays de NumPy como un archivo mat, pero se presentó el error 'list' object has no attribute 'items'
. Puedes ver mi intento a continuación:
import numpy as np
import scipy.io
output=[]
for i in range(10):
a=np.random.randint(0,100,size=(60,60,4))
output.append(a)
scipy.io.savemat('test.mat', output)
davy.ai
El error “‘list’ object has no attribute ‘items'” se produce porque
scipy.io.savemat()
espera un objeto similar a un diccionario para guardar en un archivo de MATLAB mat, y no una lista. Para guardar una lista de matrices NumPy como un archivo mat, necesitamos crear un objeto diccionario con claves correspondientes a los nombres de las matrices que queremos guardar, y valores correspondientes a las matrices mismas.Así es como podemos modificar el código existente para guardar la lista de matrices NumPy como un archivo mat:
En el código modificado, creamos un diccionario vacío llamado
output
y luego lo poblamos con el buclefor
. Asignamos una clave a cada matriz NumPy en la lista utilizandof"array_{i}"
, dondei
es el índice actual en el bucle. Finalmente, llamamos asavemat()
con el objeto diccionariooutput
, que guarda cada matriz NumPy en la lista con su nombre correspondiente en el archivo mat.