我正在尝试以matlab格式保存Python 3D int数组,其中第三维是可变长度的。我提出的解决方案是
array = np.empty((FirstDim, SecondDim), dtype = object)
for i in range(FirstDim):
for j in range(SecondDim):
array[i][j] = ...
scipy.io.savemat('array', {'array':array})
但问题是当我在matlab中访问数组变量时,它实际上只是存储为2D数组。
load array.mat
array(1,1,2)
error: A(I,J,...): index to dimension 3 out of bounds; value 2 out of bound 1
任何人都可以给我一些建议,以便我可以在matlab中访问数组,就像它是一个3D数组吗?谢谢!
答案 0 :(得分:2)
因为您将3D数组保存为对象的2D数组(每个对象是一维数组),所以Matlab将其作为单元数组加载,其中每个单元格都是一维数组。您可以使用以下语法访问单元数组中的值:
array{1,1}(2)