Matlab scipy.io.savemat模块保存错误的结构mat

Matlab scipy.io.savemat模块保存错误的结构mat,matlab,python-2.7,numpy,scipy,netcdf,Matlab,Python 2.7,Numpy,Scipy,Netcdf,我的环境:window7 32位anaconda spyder 这是我的剧本 from netCDF4 import Dataset import matplotlib.pyplot as plt import scipy.io as sio s = 'http://tds.hycom.org/thredds/dodsC/GLBu0.08/expt_19.1/2012/3hrly' f = Dataset(s, 'r') v = f.variables u = v['water_u'][0

我的环境:window7 32位anaconda spyder

这是我的剧本

from netCDF4 import Dataset
import matplotlib.pyplot as plt
import scipy.io as sio 

s = 'http://tds.hycom.org/thredds/dodsC/GLBu0.08/expt_19.1/2012/3hrly'
f = Dataset(s, 'r')
v = f.variables

u = v['water_u'][0:1, 0:1, 1413:1651, 3838:4034]
u_xy = u[0,0,:,:]

sio.savemat('savemat.mat', {'mat_u': u})
loadmat_u = sio.loadmat('savemat.mat')['mat_u']
mat_u_xy = loadmat_u[0,0,:,:]

plt.figure(1)
plt.imshow(u_xy)
plt.colorbar()

plt.figure(2)
plt.imshow(mat_u_xy)
plt.colorbar()
图(1)
图(2)
彼此不同。我想
scipy.io.savemat错误

数字如下:


u_xy和mat_xy的
形状是什么?它们是什么类型的?你试过看它们之间的绝对差异吗?形状是一样的。[8,39238196]“时间”、“深度”、“纬度”、“经度”。类型与floa32相同。转换垫子可能会导致问题。我想。为什么在切割前两个维度时,您的
形状有四个数字?在保存之前,您是否尝试过挤压
-ing
u_xy
?您使用的是哪个版本的
numpy
?numpy vision是1.9.2。看来
numpy
在内存中排列元素的方式发生了变化。尝试
u_xy=u[0,0,:,:]。复制(order='C')