% save .mat file in the matlab
train_set_x=1:50*1*51*61*23;
train_set_x=reshape(train_set_x,[50,1,51,61,23]);
save(['pythonTest.mat'],'train_set_x','-v7.3');
Dữ liệu thu được trong matlab có kích thước là (50,1,51,61,23).Đọc tệp .mat bằng Python. Nhưng hình dạng của dữ liệu đã thay đổi
Tôi tải tệp .mat bằng Python với hướng dẫn của số link này.
Mã này là như sau:
import numpy as np, h5py
f = h5py.File('pythonTest.mat', 'r')
train_set_x = f.get('train_set_x')
train_set_x = np.array(train_set_x)
Kết quả của train_set_x.shape là (23L, 61L, 51L, 1L, 50L)
. Dự kiến là (50L, 1L, 51L, 61L, 23L)
. Vì vậy, tôi đã thay đổi hình dạng bằng cách
train_set_x=np.transpose(train_set_x, (4,3,2,1,0))
Tôi tò mò về sự thay đổi về hình dạng dữ liệu giữa Python và MATLAB. Có một số lỗi trong mã của tôi không?
liên quan: http://stackoverflow.com/q/24116713/1714410 – Shai
Đối với các phiên bản '.mat' trước đó,' scipy.io.loadmat' tạo ra các mảng có cùng hình dạng như MATLAB, nhưng 'order = 'F''. Vì vậy, nó loại ẩn sự khác biệt này. – hpaulj
@hpaulj: Ý bạn là gì từ sớm? Thay đổi hành vi cho các phiên bản "trễ" là gì? – Eric