Chuyển đổi cấu trúc MATLAB sang Python dict

Vì vậy, python -> MATLAB hơi phức tạp với từ điển/cấu trúc vì loại đối tượng mà MATLAB đang mong đợi là đối tượng từ điển trong đó mỗi khóa là một biến duy nhất bạn muốn từ python dưới dạng kiểu dữ liệu đơn giản (mảng, int, v.v.). Nó không giống như có từ điển lồng nhau

Sổ ghi chép này hiển thị một ví dụ về cách đọc tệp Matlab

['T_CA042_090603_035', 'T_CA042_090603_030', 'T_CA065_090603_050', 'T_CA015_090429_015', 'T_CA015_090429_010', 'T_CA065_090603_010', 'T_CA042_090728_010', 'T_CA042_090429_010', 'CTPO_CA015_090429_001', 'F_CA042_090429_038', 'T_CA065_090429_040', 'T_CA065_090910_030', 'T_CA065_090728_040', 'T_CA042_090603_020', 'T_CA042_090728_001', 'T_CA065_090603_020', 'T_CA015_090429_001', 'T_CA042_090429_001', 'T_CA065_090429_020', 'T_CA015_090603_015', 'T_CA042_090902_001', 'T_CA065_090429_050', 'CTPO_CA015_090728_001', 'T_CA065_090910_020', 'T_CA065_090728_050', 'F_CA042_090728_038', 'CT_CA042_090902_038', 'T_CA015_090902_015', 'T_CA015_090902_005', '__header__', 'T_CA042_090728_030', 'T_CA042_090728_035', 'T_CA065_090603_030', 'T_CA015_090603_005', 'T_CA065_090429_030', 'T_CA015_090603_001', 'CT_CA042_090728_038', 'T_CA065_090910_050', 'T_CA065_090728_060', 'T_CA065_090603_040', 'T_CA015_090902_001', 'CTPO_CA042_090603_001', 'T_CA042_090728_020', 'T_CA065_090429_001', 'CTPO_CA015_090603_001', 'CTPO_CA015_090902_001', 'T_CA065_090910_040', 'T_CA015_090902_010', 'T_CA065_090728_001', 'CTPO_CA042_090728_001', 'CTPO_CA065_090603_001', 'CTPO_CA065_090728_001', 'CTPO_CA042_090429_001', 'CTPO_CA065_090429_001', 'CTPO_CA042_090902_001', 'T_CA065_090603_065', 'T_CA042_090728_042', 'T_CA065_090603_060', 'T_CA065_090728_010', 'T_CA042_090429_042', 'CT_CA042_090603_038', 'T_CA042_090902_030', 'T_CA042_090902_035', 'T_CA065_090429_010', 'T_CA042_090902_042', 'F_CA042_090902_038', 'T_CA065_090910_065', 'T_CA065_090910_060', 'T_CA042_090603_010', 'T_CA065_090728_020', 'T_CA042_090429_035', 'T_CA042_090429_030', 'T_CA042_090902_020', 'T_CA065_090429_065', 'F_CA042_090603_038', 'T_CA065_090910_010', 'CT_CA042_090429_038', 'T_CA015_090728_010', '__version__', 'T_CA015_090728_015', 'T_CA042_090603_001', 'T_CA042_090429_020', 'T_CA065_090603_001', 'T_CA042_090902_010', 'T_CA065_090429_060', 'T_CA065_090910_001', '__globals__', 'CTPO_CA065_090902_001', 'T_CA015_090728_001', 'T_CA015_090728_005']

1, chuyển đổi dữ liệu thành một từ điển có thể sử dụng được với các vòng lặp, biểu đồ dữ liệu đơn giản

Show

Đọc một. tập tin mat

Đầu tiên, chúng tôi mở tệp

['T_CA042_090603_035', 'T_CA042_090603_030', 'T_CA065_090603_050', 'T_CA015_090429_015', 'T_CA015_090429_010', 'T_CA065_090603_010', 'T_CA042_090728_010', 'T_CA042_090429_010', 'CTPO_CA015_090429_001', 'F_CA042_090429_038', 'T_CA065_090429_040', 'T_CA065_090910_030', 'T_CA065_090728_040', 'T_CA042_090603_020', 'T_CA042_090728_001', 'T_CA065_090603_020', 'T_CA015_090429_001', 'T_CA042_090429_001', 'T_CA065_090429_020', 'T_CA015_090603_015', 'T_CA042_090902_001', 'T_CA065_090429_050', 'CTPO_CA015_090728_001', 'T_CA065_090910_020', 'T_CA065_090728_050', 'F_CA042_090728_038', 'CT_CA042_090902_038', 'T_CA015_090902_015', 'T_CA015_090902_005', '__header__', 'T_CA042_090728_030', 'T_CA042_090728_035', 'T_CA065_090603_030', 'T_CA015_090603_005', 'T_CA065_090429_030', 'T_CA015_090603_001', 'CT_CA042_090728_038', 'T_CA065_090910_050', 'T_CA065_090728_060', 'T_CA065_090603_040', 'T_CA015_090902_001', 'CTPO_CA042_090603_001', 'T_CA042_090728_020', 'T_CA065_090429_001', 'CTPO_CA015_090603_001', 'CTPO_CA015_090902_001', 'T_CA065_090910_040', 'T_CA015_090902_010', 'T_CA065_090728_001', 'CTPO_CA042_090728_001', 'CTPO_CA065_090603_001', 'CTPO_CA065_090728_001', 'CTPO_CA042_090429_001', 'CTPO_CA065_090429_001', 'CTPO_CA042_090902_001', 'T_CA065_090603_065', 'T_CA042_090728_042', 'T_CA065_090603_060', 'T_CA065_090728_010', 'T_CA042_090429_042', 'CT_CA042_090603_038', 'T_CA042_090902_030', 'T_CA042_090902_035', 'T_CA065_090429_010', 'T_CA042_090902_042', 'F_CA042_090902_038', 'T_CA065_090910_065', 'T_CA065_090910_060', 'T_CA042_090603_010', 'T_CA065_090728_020', 'T_CA042_090429_035', 'T_CA042_090429_030', 'T_CA042_090902_020', 'T_CA065_090429_065', 'F_CA042_090603_038', 'T_CA065_090910_010', 'CT_CA042_090429_038', 'T_CA015_090728_010', '__version__', 'T_CA015_090728_015', 'T_CA042_090603_001', 'T_CA042_090429_020', 'T_CA065_090603_001', 'T_CA042_090902_010', 'T_CA065_090429_060', 'T_CA065_090910_001', '__globals__', 'CTPO_CA065_090902_001', 'T_CA015_090728_001', 'T_CA015_090728_005']

1 của mình bằng cách sử dụng
['T_CA042_090603_035', 'T_CA042_090603_030', 'T_CA065_090603_050', 'T_CA015_090429_015', 'T_CA015_090429_010', 'T_CA065_090603_010', 'T_CA042_090728_010', 'T_CA042_090429_010', 'CTPO_CA015_090429_001', 'F_CA042_090429_038', 'T_CA065_090429_040', 'T_CA065_090910_030', 'T_CA065_090728_040', 'T_CA042_090603_020', 'T_CA042_090728_001', 'T_CA065_090603_020', 'T_CA015_090429_001', 'T_CA042_090429_001', 'T_CA065_090429_020', 'T_CA015_090603_015', 'T_CA042_090902_001', 'T_CA065_090429_050', 'CTPO_CA015_090728_001', 'T_CA065_090910_020', 'T_CA065_090728_050', 'F_CA042_090728_038', 'CT_CA042_090902_038', 'T_CA015_090902_015', 'T_CA015_090902_005', '__header__', 'T_CA042_090728_030', 'T_CA042_090728_035', 'T_CA065_090603_030', 'T_CA015_090603_005', 'T_CA065_090429_030', 'T_CA015_090603_001', 'CT_CA042_090728_038', 'T_CA065_090910_050', 'T_CA065_090728_060', 'T_CA065_090603_040', 'T_CA015_090902_001', 'CTPO_CA042_090603_001', 'T_CA042_090728_020', 'T_CA065_090429_001', 'CTPO_CA015_090603_001', 'CTPO_CA015_090902_001', 'T_CA065_090910_040', 'T_CA015_090902_010', 'T_CA065_090728_001', 'CTPO_CA042_090728_001', 'CTPO_CA065_090603_001', 'CTPO_CA065_090728_001', 'CTPO_CA042_090429_001', 'CTPO_CA065_090429_001', 'CTPO_CA042_090902_001', 'T_CA065_090603_065', 'T_CA042_090728_042', 'T_CA065_090603_060', 'T_CA065_090728_010', 'T_CA042_090429_042', 'CT_CA042_090603_038', 'T_CA042_090902_030', 'T_CA042_090902_035', 'T_CA065_090429_010', 'T_CA042_090902_042', 'F_CA042_090902_038', 'T_CA065_090910_065', 'T_CA065_090910_060', 'T_CA042_090603_010', 'T_CA065_090728_020', 'T_CA042_090429_035', 'T_CA042_090429_030', 'T_CA042_090902_020', 'T_CA065_090429_065', 'F_CA042_090603_038', 'T_CA065_090910_010', 'CT_CA042_090429_038', 'T_CA015_090728_010', '__version__', 'T_CA015_090728_015', 'T_CA042_090603_001', 'T_CA042_090429_020', 'T_CA065_090603_001', 'T_CA042_090902_010', 'T_CA065_090429_060', 'T_CA065_090910_001', '__globals__', 'CTPO_CA065_090902_001', 'T_CA015_090728_001', 'T_CA015_090728_005']

4 từ
['T_CA042_090603_035', 'T_CA042_090603_030', 'T_CA065_090603_050', 'T_CA015_090429_015', 'T_CA015_090429_010', 'T_CA065_090603_010', 'T_CA042_090728_010', 'T_CA042_090429_010', 'CTPO_CA015_090429_001', 'F_CA042_090429_038', 'T_CA065_090429_040', 'T_CA065_090910_030', 'T_CA065_090728_040', 'T_CA042_090603_020', 'T_CA042_090728_001', 'T_CA065_090603_020', 'T_CA015_090429_001', 'T_CA042_090429_001', 'T_CA065_090429_020', 'T_CA015_090603_015', 'T_CA042_090902_001', 'T_CA065_090429_050', 'CTPO_CA015_090728_001', 'T_CA065_090910_020', 'T_CA065_090728_050', 'F_CA042_090728_038', 'CT_CA042_090902_038', 'T_CA015_090902_015', 'T_CA015_090902_005', '__header__', 'T_CA042_090728_030', 'T_CA042_090728_035', 'T_CA065_090603_030', 'T_CA015_090603_005', 'T_CA065_090429_030', 'T_CA015_090603_001', 'CT_CA042_090728_038', 'T_CA065_090910_050', 'T_CA065_090728_060', 'T_CA065_090603_040', 'T_CA015_090902_001', 'CTPO_CA042_090603_001', 'T_CA042_090728_020', 'T_CA065_090429_001', 'CTPO_CA015_090603_001', 'CTPO_CA015_090902_001', 'T_CA065_090910_040', 'T_CA015_090902_010', 'T_CA065_090728_001', 'CTPO_CA042_090728_001', 'CTPO_CA065_090603_001', 'CTPO_CA065_090728_001', 'CTPO_CA042_090429_001', 'CTPO_CA065_090429_001', 'CTPO_CA042_090902_001', 'T_CA065_090603_065', 'T_CA042_090728_042', 'T_CA065_090603_060', 'T_CA065_090728_010', 'T_CA042_090429_042', 'CT_CA042_090603_038', 'T_CA042_090902_030', 'T_CA042_090902_035', 'T_CA065_090429_010', 'T_CA042_090902_042', 'F_CA042_090902_038', 'T_CA065_090910_065', 'T_CA065_090910_060', 'T_CA042_090603_010', 'T_CA065_090728_020', 'T_CA042_090429_035', 'T_CA042_090429_030', 'T_CA042_090902_020', 'T_CA065_090429_065', 'F_CA042_090603_038', 'T_CA065_090910_010', 'CT_CA042_090429_038', 'T_CA015_090728_010', '__version__', 'T_CA015_090728_015', 'T_CA042_090603_001', 'T_CA042_090429_020', 'T_CA065_090603_001', 'T_CA042_090902_010', 'T_CA065_090429_060', 'T_CA065_090910_001', '__globals__', 'CTPO_CA065_090902_001', 'T_CA015_090728_001', 'T_CA015_090728_005']

5. Hàm này trả về các biến trong tệp
['T_CA042_090603_035', 'T_CA042_090603_030', 'T_CA065_090603_050', 'T_CA015_090429_015', 'T_CA015_090429_010', 'T_CA065_090603_010', 'T_CA042_090728_010', 'T_CA042_090429_010', 'CTPO_CA015_090429_001', 'F_CA042_090429_038', 'T_CA065_090429_040', 'T_CA065_090910_030', 'T_CA065_090728_040', 'T_CA042_090603_020', 'T_CA042_090728_001', 'T_CA065_090603_020', 'T_CA015_090429_001', 'T_CA042_090429_001', 'T_CA065_090429_020', 'T_CA015_090603_015', 'T_CA042_090902_001', 'T_CA065_090429_050', 'CTPO_CA015_090728_001', 'T_CA065_090910_020', 'T_CA065_090728_050', 'F_CA042_090728_038', 'CT_CA042_090902_038', 'T_CA015_090902_015', 'T_CA015_090902_005', '__header__', 'T_CA042_090728_030', 'T_CA042_090728_035', 'T_CA065_090603_030', 'T_CA015_090603_005', 'T_CA065_090429_030', 'T_CA015_090603_001', 'CT_CA042_090728_038', 'T_CA065_090910_050', 'T_CA065_090728_060', 'T_CA065_090603_040', 'T_CA015_090902_001', 'CTPO_CA042_090603_001', 'T_CA042_090728_020', 'T_CA065_090429_001', 'CTPO_CA015_090603_001', 'CTPO_CA015_090902_001', 'T_CA065_090910_040', 'T_CA015_090902_010', 'T_CA065_090728_001', 'CTPO_CA042_090728_001', 'CTPO_CA065_090603_001', 'CTPO_CA065_090728_001', 'CTPO_CA042_090429_001', 'CTPO_CA065_090429_001', 'CTPO_CA042_090902_001', 'T_CA065_090603_065', 'T_CA042_090728_042', 'T_CA065_090603_060', 'T_CA065_090728_010', 'T_CA042_090429_042', 'CT_CA042_090603_038', 'T_CA042_090902_030', 'T_CA042_090902_035', 'T_CA065_090429_010', 'T_CA042_090902_042', 'F_CA042_090902_038', 'T_CA065_090910_065', 'T_CA065_090910_060', 'T_CA042_090603_010', 'T_CA065_090728_020', 'T_CA042_090429_035', 'T_CA042_090429_030', 'T_CA042_090902_020', 'T_CA065_090429_065', 'F_CA042_090603_038', 'T_CA065_090910_010', 'CT_CA042_090429_038', 'T_CA015_090728_010', '__version__', 'T_CA015_090728_015', 'T_CA042_090603_001', 'T_CA042_090429_020', 'T_CA065_090603_001', 'T_CA042_090902_010', 'T_CA065_090429_060', 'T_CA065_090910_001', '__globals__', 'CTPO_CA065_090902_001', 'T_CA015_090728_001', 'T_CA015_090728_005']

1 dưới dạng các khóa trong từ điển. Lưu ý rằng chức năng này chỉ có thể mở
['T_CA042_090603_035', 'T_CA042_090603_030', 'T_CA065_090603_050', 'T_CA015_090429_015', 'T_CA015_090429_010', 'T_CA065_090603_010', 'T_CA042_090728_010', 'T_CA042_090429_010', 'CTPO_CA015_090429_001', 'F_CA042_090429_038', 'T_CA065_090429_040', 'T_CA065_090910_030', 'T_CA065_090728_040', 'T_CA042_090603_020', 'T_CA042_090728_001', 'T_CA065_090603_020', 'T_CA015_090429_001', 'T_CA042_090429_001', 'T_CA065_090429_020', 'T_CA015_090603_015', 'T_CA042_090902_001', 'T_CA065_090429_050', 'CTPO_CA015_090728_001', 'T_CA065_090910_020', 'T_CA065_090728_050', 'F_CA042_090728_038', 'CT_CA042_090902_038', 'T_CA015_090902_015', 'T_CA015_090902_005', '__header__', 'T_CA042_090728_030', 'T_CA042_090728_035', 'T_CA065_090603_030', 'T_CA015_090603_005', 'T_CA065_090429_030', 'T_CA015_090603_001', 'CT_CA042_090728_038', 'T_CA065_090910_050', 'T_CA065_090728_060', 'T_CA065_090603_040', 'T_CA015_090902_001', 'CTPO_CA042_090603_001', 'T_CA042_090728_020', 'T_CA065_090429_001', 'CTPO_CA015_090603_001', 'CTPO_CA015_090902_001', 'T_CA065_090910_040', 'T_CA015_090902_010', 'T_CA065_090728_001', 'CTPO_CA042_090728_001', 'CTPO_CA065_090603_001', 'CTPO_CA065_090728_001', 'CTPO_CA042_090429_001', 'CTPO_CA065_090429_001', 'CTPO_CA042_090902_001', 'T_CA065_090603_065', 'T_CA042_090728_042', 'T_CA065_090603_060', 'T_CA065_090728_010', 'T_CA042_090429_042', 'CT_CA042_090603_038', 'T_CA042_090902_030', 'T_CA042_090902_035', 'T_CA065_090429_010', 'T_CA042_090902_042', 'F_CA042_090902_038', 'T_CA065_090910_065', 'T_CA065_090910_060', 'T_CA042_090603_010', 'T_CA065_090728_020', 'T_CA042_090429_035', 'T_CA042_090429_030', 'T_CA042_090902_020', 'T_CA065_090429_065', 'F_CA042_090603_038', 'T_CA065_090910_010', 'CT_CA042_090429_038', 'T_CA015_090728_010', '__version__', 'T_CA015_090728_015', 'T_CA042_090603_001', 'T_CA042_090429_020', 'T_CA065_090603_001', 'T_CA042_090902_010', 'T_CA065_090429_060', 'T_CA065_090910_001', '__globals__', 'CTPO_CA065_090902_001', 'T_CA015_090728_001', 'T_CA015_090728_005']

1 tệp nhỏ hơn phiên bản 7. 3. Nếu phiên bản tệp của bạn là 7. 3 trở lên, bạn có hai lựa chọn

  1. Mở tệp trong Matlab và lưu dưới dạng phiên bản thấp hơn

     save filename.mat -v7
    
  2. sau v. 7. 3,

    ['T_CA042_090603_035', 'T_CA042_090603_030', 'T_CA065_090603_050', 'T_CA015_090429_015', 'T_CA015_090429_010', 'T_CA065_090603_010', 'T_CA042_090728_010', 'T_CA042_090429_010', 'CTPO_CA015_090429_001', 'F_CA042_090429_038', 'T_CA065_090429_040', 'T_CA065_090910_030', 'T_CA065_090728_040', 'T_CA042_090603_020', 'T_CA042_090728_001', 'T_CA065_090603_020', 'T_CA015_090429_001', 'T_CA042_090429_001', 'T_CA065_090429_020', 'T_CA015_090603_015', 'T_CA042_090902_001', 'T_CA065_090429_050', 'CTPO_CA015_090728_001', 'T_CA065_090910_020', 'T_CA065_090728_050', 'F_CA042_090728_038', 'CT_CA042_090902_038', 'T_CA015_090902_015', 'T_CA015_090902_005', '__header__', 'T_CA042_090728_030', 'T_CA042_090728_035', 'T_CA065_090603_030', 'T_CA015_090603_005', 'T_CA065_090429_030', 'T_CA015_090603_001', 'CT_CA042_090728_038', 'T_CA065_090910_050', 'T_CA065_090728_060', 'T_CA065_090603_040', 'T_CA015_090902_001', 'CTPO_CA042_090603_001', 'T_CA042_090728_020', 'T_CA065_090429_001', 'CTPO_CA015_090603_001', 'CTPO_CA015_090902_001', 'T_CA065_090910_040', 'T_CA015_090902_010', 'T_CA065_090728_001', 'CTPO_CA042_090728_001', 'CTPO_CA065_090603_001', 'CTPO_CA065_090728_001', 'CTPO_CA042_090429_001', 'CTPO_CA065_090429_001', 'CTPO_CA042_090902_001', 'T_CA065_090603_065', 'T_CA042_090728_042', 'T_CA065_090603_060', 'T_CA065_090728_010', 'T_CA042_090429_042', 'CT_CA042_090603_038', 'T_CA042_090902_030', 'T_CA042_090902_035', 'T_CA065_090429_010', 'T_CA042_090902_042', 'F_CA042_090902_038', 'T_CA065_090910_065', 'T_CA065_090910_060', 'T_CA042_090603_010', 'T_CA065_090728_020', 'T_CA042_090429_035', 'T_CA042_090429_030', 'T_CA042_090902_020', 'T_CA065_090429_065', 'F_CA042_090603_038', 'T_CA065_090910_010', 'CT_CA042_090429_038', 'T_CA015_090728_010', '__version__', 'T_CA015_090728_015', 'T_CA042_090603_001', 'T_CA042_090429_020', 'T_CA065_090603_001', 'T_CA042_090902_010', 'T_CA065_090429_060', 'T_CA065_090910_001', '__globals__', 'CTPO_CA065_090902_001', 'T_CA015_090728_001', 'T_CA015_090728_005']
    
    
    1 tệp được lưu dưới dạng tệp
    ['T_CA042_090603_035', 'T_CA042_090603_030', 'T_CA065_090603_050', 'T_CA015_090429_015', 'T_CA015_090429_010', 'T_CA065_090603_010', 'T_CA042_090728_010', 'T_CA042_090429_010', 'CTPO_CA015_090429_001', 'F_CA042_090429_038', 'T_CA065_090429_040', 'T_CA065_090910_030', 'T_CA065_090728_040', 'T_CA042_090603_020', 'T_CA042_090728_001', 'T_CA065_090603_020', 'T_CA015_090429_001', 'T_CA042_090429_001', 'T_CA065_090429_020', 'T_CA015_090603_015', 'T_CA042_090902_001', 'T_CA065_090429_050', 'CTPO_CA015_090728_001', 'T_CA065_090910_020', 'T_CA065_090728_050', 'F_CA042_090728_038', 'CT_CA042_090902_038', 'T_CA015_090902_015', 'T_CA015_090902_005', '__header__', 'T_CA042_090728_030', 'T_CA042_090728_035', 'T_CA065_090603_030', 'T_CA015_090603_005', 'T_CA065_090429_030', 'T_CA015_090603_001', 'CT_CA042_090728_038', 'T_CA065_090910_050', 'T_CA065_090728_060', 'T_CA065_090603_040', 'T_CA015_090902_001', 'CTPO_CA042_090603_001', 'T_CA042_090728_020', 'T_CA065_090429_001', 'CTPO_CA015_090603_001', 'CTPO_CA015_090902_001', 'T_CA065_090910_040', 'T_CA015_090902_010', 'T_CA065_090728_001', 'CTPO_CA042_090728_001', 'CTPO_CA065_090603_001', 'CTPO_CA065_090728_001', 'CTPO_CA042_090429_001', 'CTPO_CA065_090429_001', 'CTPO_CA042_090902_001', 'T_CA065_090603_065', 'T_CA042_090728_042', 'T_CA065_090603_060', 'T_CA065_090728_010', 'T_CA042_090429_042', 'CT_CA042_090603_038', 'T_CA042_090902_030', 'T_CA042_090902_035', 'T_CA065_090429_010', 'T_CA042_090902_042', 'F_CA042_090902_038', 'T_CA065_090910_065', 'T_CA065_090910_060', 'T_CA042_090603_010', 'T_CA065_090728_020', 'T_CA042_090429_035', 'T_CA042_090429_030', 'T_CA042_090902_020', 'T_CA065_090429_065', 'F_CA042_090603_038', 'T_CA065_090910_010', 'CT_CA042_090429_038', 'T_CA015_090728_010', '__version__', 'T_CA015_090728_015', 'T_CA042_090603_001', 'T_CA042_090429_020', 'T_CA065_090603_001', 'T_CA042_090902_010', 'T_CA065_090429_060', 'T_CA065_090910_001', '__globals__', 'CTPO_CA065_090902_001', 'T_CA015_090728_001', 'T_CA015_090728_005']
    
    
    9. Định dạng này là siêu bộ của
    def print_mat_nested(d, indent=0, nkeys=0):
        """Pretty print nested structures from .mat files   
        Inspired by: `StackOverflow <http://stackoverflow.com/questions/3229419/pretty-printing-nested-dictionaries-in-python>`_
        """
        
        # Subset dictionary to limit keys to print.  Only works on first level
        if nkeys>0:
            d = {k: d[k] for k in d.keys()[:nkeys]}  # Dictionary comprehension: limit to first nkeys keys.
    
        if isinstance(d, dict):
            for key, value in d.iteritems():         # iteritems loops through key, value pairs
              print '\t' * indent + 'Key: ' + str(key)
              print_mat_nested(value, indent+1)
    
        if isinstance(d,np.ndarray) and d.dtype.names is not None:  # Note: and short-circuits by default
            for n in d.dtype.names:    # This means it's a struct, it's bit of a kludge test.
                print '\t' * indent + 'Field: ' + str(n)
                print_mat_nested(d[n], indent+1)
    
    print_mat_nested(matdata, nkeys=10)
    
    0 (phiên bản 4) và có thể được đọc bằng gói
    def print_mat_nested(d, indent=0, nkeys=0):
        """Pretty print nested structures from .mat files   
        Inspired by: `StackOverflow <http://stackoverflow.com/questions/3229419/pretty-printing-nested-dictionaries-in-python>`_
        """
        
        # Subset dictionary to limit keys to print.  Only works on first level
        if nkeys>0:
            d = {k: d[k] for k in d.keys()[:nkeys]}  # Dictionary comprehension: limit to first nkeys keys.
    
        if isinstance(d, dict):
            for key, value in d.iteritems():         # iteritems loops through key, value pairs
              print '\t' * indent + 'Key: ' + str(key)
              print_mat_nested(value, indent+1)
    
        if isinstance(d,np.ndarray) and d.dtype.names is not None:  # Note: and short-circuits by default
            for n in d.dtype.names:    # This means it's a struct, it's bit of a kludge test.
                print '\t' * indent + 'Field: ' + str(n)
                print_mat_nested(d[n], indent+1)
    
    print_mat_nested(matdata, nkeys=10)
    
    1

Tệp ví dụ chúng ta đang đọc có cấu trúc dữ liệu phức tạp. Ban đầu, tệp chứa nhiều biến bổ sung, tương ứng với các dây neo khác, nhưng chúng tôi đã giảm nó xuống chỉ chứa dữ liệu cho một bộ dây neo. Các kỹ thuật tương tự có thể được sử dụng với một vòng lặp để đọc toàn bộ tệp

Python có hai kiểu dữ liệu tương tự như của Matlab

def print_mat_nested(d, indent=0, nkeys=0):
    """Pretty print nested structures from .mat files   
    Inspired by: `StackOverflow <http://stackoverflow.com/questions/3229419/pretty-printing-nested-dictionaries-in-python>`_
    """
    
    # Subset dictionary to limit keys to print.  Only works on first level
    if nkeys>0:
        d = {k: d[k] for k in d.keys()[:nkeys]}  # Dictionary comprehension: limit to first nkeys keys.

    if isinstance(d, dict):
        for key, value in d.iteritems():         # iteritems loops through key, value pairs
          print '\t' * indent + 'Key: ' + str(key)
          print_mat_nested(value, indent+1)

    if isinstance(d,np.ndarray) and d.dtype.names is not None:  # Note: and short-circuits by default
        for n in d.dtype.names:    # This means it's a struct, it's bit of a kludge test.
            print '\t' * indent + 'Field: ' + str(n)
            print_mat_nested(d[n], indent+1)

print_mat_nested(matdata, nkeys=10)
2.
def print_mat_nested(d, indent=0, nkeys=0):
    """Pretty print nested structures from .mat files   
    Inspired by: `StackOverflow <http://stackoverflow.com/questions/3229419/pretty-printing-nested-dictionaries-in-python>`_
    """
    
    # Subset dictionary to limit keys to print.  Only works on first level
    if nkeys>0:
        d = {k: d[k] for k in d.keys()[:nkeys]}  # Dictionary comprehension: limit to first nkeys keys.

    if isinstance(d, dict):
        for key, value in d.iteritems():         # iteritems loops through key, value pairs
          print '\t' * indent + 'Key: ' + str(key)
          print_mat_nested(value, indent+1)

    if isinstance(d,np.ndarray) and d.dtype.names is not None:  # Note: and short-circuits by default
        for n in d.dtype.names:    # This means it's a struct, it's bit of a kludge test.
            print '\t' * indent + 'Field: ' + str(n)
            print_mat_nested(d[n], indent+1)

print_mat_nested(matdata, nkeys=10)
3 từ Python tiêu chuẩn và
def print_mat_nested(d, indent=0, nkeys=0):
    """Pretty print nested structures from .mat files   
    Inspired by: `StackOverflow <http://stackoverflow.com/questions/3229419/pretty-printing-nested-dictionaries-in-python>`_
    """
    
    # Subset dictionary to limit keys to print.  Only works on first level
    if nkeys>0:
        d = {k: d[k] for k in d.keys()[:nkeys]}  # Dictionary comprehension: limit to first nkeys keys.

    if isinstance(d, dict):
        for key, value in d.iteritems():         # iteritems loops through key, value pairs
          print '\t' * indent + 'Key: ' + str(key)
          print_mat_nested(value, indent+1)

    if isinstance(d,np.ndarray) and d.dtype.names is not None:  # Note: and short-circuits by default
        for n in d.dtype.names:    # This means it's a struct, it's bit of a kludge test.
            print '\t' * indent + 'Field: ' + str(n)
            print_mat_nested(d[n], indent+1)

print_mat_nested(matdata, nkeys=10)
4 hoặc
def print_mat_nested(d, indent=0, nkeys=0):
    """Pretty print nested structures from .mat files   
    Inspired by: `StackOverflow <http://stackoverflow.com/questions/3229419/pretty-printing-nested-dictionaries-in-python>`_
    """
    
    # Subset dictionary to limit keys to print.  Only works on first level
    if nkeys>0:
        d = {k: d[k] for k in d.keys()[:nkeys]}  # Dictionary comprehension: limit to first nkeys keys.

    if isinstance(d, dict):
        for key, value in d.iteritems():         # iteritems loops through key, value pairs
          print '\t' * indent + 'Key: ' + str(key)
          print_mat_nested(value, indent+1)

    if isinstance(d,np.ndarray) and d.dtype.names is not None:  # Note: and short-circuits by default
        for n in d.dtype.names:    # This means it's a struct, it's bit of a kludge test.
            print '\t' * indent + 'Field: ' + str(n)
            print_mat_nested(d[n], indent+1)

print_mat_nested(matdata, nkeys=10)
5 từ
def print_mat_nested(d, indent=0, nkeys=0):
    """Pretty print nested structures from .mat files   
    Inspired by: `StackOverflow <http://stackoverflow.com/questions/3229419/pretty-printing-nested-dictionaries-in-python>`_
    """
    
    # Subset dictionary to limit keys to print.  Only works on first level
    if nkeys>0:
        d = {k: d[k] for k in d.keys()[:nkeys]}  # Dictionary comprehension: limit to first nkeys keys.

    if isinstance(d, dict):
        for key, value in d.iteritems():         # iteritems loops through key, value pairs
          print '\t' * indent + 'Key: ' + str(key)
          print_mat_nested(value, indent+1)

    if isinstance(d,np.ndarray) and d.dtype.names is not None:  # Note: and short-circuits by default
        for n in d.dtype.names:    # This means it's a struct, it's bit of a kludge test.
            print '\t' * indent + 'Field: ' + str(n)
            print_mat_nested(d[n], indent+1)

print_mat_nested(matdata, nkeys=10)
6. Tôi thường sử dụng
def print_mat_nested(d, indent=0, nkeys=0):
    """Pretty print nested structures from .mat files   
    Inspired by: `StackOverflow <http://stackoverflow.com/questions/3229419/pretty-printing-nested-dictionaries-in-python>`_
    """
    
    # Subset dictionary to limit keys to print.  Only works on first level
    if nkeys>0:
        d = {k: d[k] for k in d.keys()[:nkeys]}  # Dictionary comprehension: limit to first nkeys keys.

    if isinstance(d, dict):
        for key, value in d.iteritems():         # iteritems loops through key, value pairs
          print '\t' * indent + 'Key: ' + str(key)
          print_mat_nested(value, indent+1)

    if isinstance(d,np.ndarray) and d.dtype.names is not None:  # Note: and short-circuits by default
        for n in d.dtype.names:    # This means it's a struct, it's bit of a kludge test.
            print '\t' * indent + 'Field: ' + str(n)
            print_mat_nested(d[n], indent+1)

print_mat_nested(matdata, nkeys=10)
3 vì nó có trong các thư viện cơ bản, bạn có thể tìm thấy rất nhiều thông tin về chúng trực tuyến và truy cập chúng tương đối đơn giản.
def print_mat_nested(d, indent=0, nkeys=0):
    """Pretty print nested structures from .mat files   
    Inspired by: `StackOverflow <http://stackoverflow.com/questions/3229419/pretty-printing-nested-dictionaries-in-python>`_
    """
    
    # Subset dictionary to limit keys to print.  Only works on first level
    if nkeys>0:
        d = {k: d[k] for k in d.keys()[:nkeys]}  # Dictionary comprehension: limit to first nkeys keys.

    if isinstance(d, dict):
        for key, value in d.iteritems():         # iteritems loops through key, value pairs
          print '\t' * indent + 'Key: ' + str(key)
          print_mat_nested(value, indent+1)

    if isinstance(d,np.ndarray) and d.dtype.names is not None:  # Note: and short-circuits by default
        for n in d.dtype.names:    # This means it's a struct, it's bit of a kludge test.
            print '\t' * indent + 'Field: ' + str(n)
            print_mat_nested(d[n], indent+1)

print_mat_nested(matdata, nkeys=10)
6 cũng cung cấp
def print_mat_nested(d, indent=0, nkeys=0):
    """Pretty print nested structures from .mat files   
    Inspired by: `StackOverflow <http://stackoverflow.com/questions/3229419/pretty-printing-nested-dictionaries-in-python>`_
    """
    
    # Subset dictionary to limit keys to print.  Only works on first level
    if nkeys>0:
        d = {k: d[k] for k in d.keys()[:nkeys]}  # Dictionary comprehension: limit to first nkeys keys.

    if isinstance(d, dict):
        for key, value in d.iteritems():         # iteritems loops through key, value pairs
          print '\t' * indent + 'Key: ' + str(key)
          print_mat_nested(value, indent+1)

    if isinstance(d,np.ndarray) and d.dtype.names is not None:  # Note: and short-circuits by default
        for n in d.dtype.names:    # This means it's a struct, it's bit of a kludge test.
            print '\t' * indent + 'Field: ' + str(n)
            print_mat_nested(d[n], indent+1)

print_mat_nested(matdata, nkeys=10)
4 tương tự như mảng
def print_mat_nested(d, indent=0, nkeys=0):
    """Pretty print nested structures from .mat files   
    Inspired by: `StackOverflow <http://stackoverflow.com/questions/3229419/pretty-printing-nested-dictionaries-in-python>`_
    """
    
    # Subset dictionary to limit keys to print.  Only works on first level
    if nkeys>0:
        d = {k: d[k] for k in d.keys()[:nkeys]}  # Dictionary comprehension: limit to first nkeys keys.

    if isinstance(d, dict):
        for key, value in d.iteritems():         # iteritems loops through key, value pairs
          print '\t' * indent + 'Key: ' + str(key)
          print_mat_nested(value, indent+1)

    if isinstance(d,np.ndarray) and d.dtype.names is not None:  # Note: and short-circuits by default
        for n in d.dtype.names:    # This means it's a struct, it's bit of a kludge test.
            print '\t' * indent + 'Field: ' + str(n)
            print_mat_nested(d[n], indent+1)

print_mat_nested(matdata, nkeys=10)
2 của Matlab ở chỗ chúng có thể có hình dạng bất kỳ. Vì điều này, chúng mạnh hơn
def print_mat_nested(d, indent=0, nkeys=0):
    """Pretty print nested structures from .mat files   
    Inspired by: `StackOverflow <http://stackoverflow.com/questions/3229419/pretty-printing-nested-dictionaries-in-python>`_
    """
    
    # Subset dictionary to limit keys to print.  Only works on first level
    if nkeys>0:
        d = {k: d[k] for k in d.keys()[:nkeys]}  # Dictionary comprehension: limit to first nkeys keys.

    if isinstance(d, dict):
        for key, value in d.iteritems():         # iteritems loops through key, value pairs
          print '\t' * indent + 'Key: ' + str(key)
          print_mat_nested(value, indent+1)

    if isinstance(d,np.ndarray) and d.dtype.names is not None:  # Note: and short-circuits by default
        for n in d.dtype.names:    # This means it's a struct, it's bit of a kludge test.
            print '\t' * indent + 'Field: ' + str(n)
            print_mat_nested(d[n], indent+1)

print_mat_nested(matdata, nkeys=10)
3 nhưng cũng khó truy cập và sử dụng hơn một chút

Để bắt đầu, chúng tôi sẽ đọc trong tệp và in các khóa của từ điển mà tệp đã được lưu vào. Các khóa này tương ứng với biến được lưu trữ trong tệp

['T_CA042_090603_035', 'T_CA042_090603_030', 'T_CA065_090603_050', 'T_CA015_090429_015', 'T_CA015_090429_010', 'T_CA065_090603_010', 'T_CA042_090728_010', 'T_CA042_090429_010', 'CTPO_CA015_090429_001', 'F_CA042_090429_038', 'T_CA065_090429_040', 'T_CA065_090910_030', 'T_CA065_090728_040', 'T_CA042_090603_020', 'T_CA042_090728_001', 'T_CA065_090603_020', 'T_CA015_090429_001', 'T_CA042_090429_001', 'T_CA065_090429_020', 'T_CA015_090603_015', 'T_CA042_090902_001', 'T_CA065_090429_050', 'CTPO_CA015_090728_001', 'T_CA065_090910_020', 'T_CA065_090728_050', 'F_CA042_090728_038', 'CT_CA042_090902_038', 'T_CA015_090902_015', 'T_CA015_090902_005', '__header__', 'T_CA042_090728_030', 'T_CA042_090728_035', 'T_CA065_090603_030', 'T_CA015_090603_005', 'T_CA065_090429_030', 'T_CA015_090603_001', 'CT_CA042_090728_038', 'T_CA065_090910_050', 'T_CA065_090728_060', 'T_CA065_090603_040', 'T_CA015_090902_001', 'CTPO_CA042_090603_001', 'T_CA042_090728_020', 'T_CA065_090429_001', 'CTPO_CA015_090603_001', 'CTPO_CA015_090902_001', 'T_CA065_090910_040', 'T_CA015_090902_010', 'T_CA065_090728_001', 'CTPO_CA042_090728_001', 'CTPO_CA065_090603_001', 'CTPO_CA065_090728_001', 'CTPO_CA042_090429_001', 'CTPO_CA065_090429_001', 'CTPO_CA042_090902_001', 'T_CA065_090603_065', 'T_CA042_090728_042', 'T_CA065_090603_060', 'T_CA065_090728_010', 'T_CA042_090429_042', 'CT_CA042_090603_038', 'T_CA042_090902_030', 'T_CA042_090902_035', 'T_CA065_090429_010', 'T_CA042_090902_042', 'F_CA042_090902_038', 'T_CA065_090910_065', 'T_CA065_090910_060', 'T_CA042_090603_010', 'T_CA065_090728_020', 'T_CA042_090429_035', 'T_CA042_090429_030', 'T_CA042_090902_020', 'T_CA065_090429_065', 'F_CA042_090603_038', 'T_CA065_090910_010', 'CT_CA042_090429_038', 'T_CA015_090728_010', '__version__', 'T_CA015_090728_015', 'T_CA042_090603_001', 'T_CA042_090429_020', 'T_CA065_090603_001', 'T_CA042_090902_010', 'T_CA065_090429_060', 'T_CA065_090910_001', '__globals__', 'CTPO_CA065_090902_001', 'T_CA015_090728_001', 'T_CA015_090728_005']

1 ban đầu

Trong 1]

%matplotlib inline
import numpy as np
import scipy.io as spio
import matplotlib.pyplot as plt

matfile = '../../data/CA2009.mat'
matdata = spio.loadmat(matfile)
print matdata.keys()

['T_CA042_090603_035', 'T_CA042_090603_030', 'T_CA065_090603_050', 'T_CA015_090429_015', 'T_CA015_090429_010', 'T_CA065_090603_010', 'T_CA042_090728_010', 'T_CA042_090429_010', 'CTPO_CA015_090429_001', 'F_CA042_090429_038', 'T_CA065_090429_040', 'T_CA065_090910_030', 'T_CA065_090728_040', 'T_CA042_090603_020', 'T_CA042_090728_001', 'T_CA065_090603_020', 'T_CA015_090429_001', 'T_CA042_090429_001', 'T_CA065_090429_020', 'T_CA015_090603_015', 'T_CA042_090902_001', 'T_CA065_090429_050', 'CTPO_CA015_090728_001', 'T_CA065_090910_020', 'T_CA065_090728_050', 'F_CA042_090728_038', 'CT_CA042_090902_038', 'T_CA015_090902_015', 'T_CA015_090902_005', '__header__', 'T_CA042_090728_030', 'T_CA042_090728_035', 'T_CA065_090603_030', 'T_CA015_090603_005', 'T_CA065_090429_030', 'T_CA015_090603_001', 'CT_CA042_090728_038', 'T_CA065_090910_050', 'T_CA065_090728_060', 'T_CA065_090603_040', 'T_CA015_090902_001', 'CTPO_CA042_090603_001', 'T_CA042_090728_020', 'T_CA065_090429_001', 'CTPO_CA015_090603_001', 'CTPO_CA015_090902_001', 'T_CA065_090910_040', 'T_CA015_090902_010', 'T_CA065_090728_001', 'CTPO_CA042_090728_001', 'CTPO_CA065_090603_001', 'CTPO_CA065_090728_001', 'CTPO_CA042_090429_001', 'CTPO_CA065_090429_001', 'CTPO_CA042_090902_001', 'T_CA065_090603_065', 'T_CA042_090728_042', 'T_CA065_090603_060', 'T_CA065_090728_010', 'T_CA042_090429_042', 'CT_CA042_090603_038', 'T_CA042_090902_030', 'T_CA042_090902_035', 'T_CA065_090429_010', 'T_CA042_090902_042', 'F_CA042_090902_038', 'T_CA065_090910_065', 'T_CA065_090910_060', 'T_CA042_090603_010', 'T_CA065_090728_020', 'T_CA042_090429_035', 'T_CA042_090429_030', 'T_CA042_090902_020', 'T_CA065_090429_065', 'F_CA042_090603_038', 'T_CA065_090910_010', 'CT_CA042_090429_038', 'T_CA015_090728_010', '__version__', 'T_CA015_090728_015', 'T_CA042_090603_001', 'T_CA042_090429_020', 'T_CA065_090603_001', 'T_CA042_090902_010', 'T_CA065_090429_060', 'T_CA065_090910_001', '__globals__', 'CTPO_CA065_090902_001', 'T_CA015_090728_001', 'T_CA015_090728_005']

Đối với tập dữ liệu này, mỗi biến bao gồm bốn phần, với mỗi phần được phân tách bằng dấu gạch dưới. INST_STA_DATE_DEPTH

  • INST. (Các) thiết bị nằm ở phần này của dây neo. T là nhiệt độ;
  • STA. Vị trí nhà ga. dây neo và độ sâu nước. CA_042 là Mũi Alava ở độ sâu 42 m
  • NGÀY. Ngày công cụ neo đậu đã được phục hồi
  • CHIỀU SÂU. Độ sâu danh nghĩa của các thiết bị dọc theo dây neo

Ngoài ra, lưu ý rằng có các khóa như __globals__, __version__ và __header__. Các khóa này chứa thông tin về tệp

['T_CA042_090603_035', 'T_CA042_090603_030', 'T_CA065_090603_050', 'T_CA015_090429_015', 'T_CA015_090429_010', 'T_CA065_090603_010', 'T_CA042_090728_010', 'T_CA042_090429_010', 'CTPO_CA015_090429_001', 'F_CA042_090429_038', 'T_CA065_090429_040', 'T_CA065_090910_030', 'T_CA065_090728_040', 'T_CA042_090603_020', 'T_CA042_090728_001', 'T_CA065_090603_020', 'T_CA015_090429_001', 'T_CA042_090429_001', 'T_CA065_090429_020', 'T_CA015_090603_015', 'T_CA042_090902_001', 'T_CA065_090429_050', 'CTPO_CA015_090728_001', 'T_CA065_090910_020', 'T_CA065_090728_050', 'F_CA042_090728_038', 'CT_CA042_090902_038', 'T_CA015_090902_015', 'T_CA015_090902_005', '__header__', 'T_CA042_090728_030', 'T_CA042_090728_035', 'T_CA065_090603_030', 'T_CA015_090603_005', 'T_CA065_090429_030', 'T_CA015_090603_001', 'CT_CA042_090728_038', 'T_CA065_090910_050', 'T_CA065_090728_060', 'T_CA065_090603_040', 'T_CA015_090902_001', 'CTPO_CA042_090603_001', 'T_CA042_090728_020', 'T_CA065_090429_001', 'CTPO_CA015_090603_001', 'CTPO_CA015_090902_001', 'T_CA065_090910_040', 'T_CA015_090902_010', 'T_CA065_090728_001', 'CTPO_CA042_090728_001', 'CTPO_CA065_090603_001', 'CTPO_CA065_090728_001', 'CTPO_CA042_090429_001', 'CTPO_CA065_090429_001', 'CTPO_CA042_090902_001', 'T_CA065_090603_065', 'T_CA042_090728_042', 'T_CA065_090603_060', 'T_CA065_090728_010', 'T_CA042_090429_042', 'CT_CA042_090603_038', 'T_CA042_090902_030', 'T_CA042_090902_035', 'T_CA065_090429_010', 'T_CA042_090902_042', 'F_CA042_090902_038', 'T_CA065_090910_065', 'T_CA065_090910_060', 'T_CA042_090603_010', 'T_CA065_090728_020', 'T_CA042_090429_035', 'T_CA042_090429_030', 'T_CA042_090902_020', 'T_CA065_090429_065', 'F_CA042_090603_038', 'T_CA065_090910_010', 'CT_CA042_090429_038', 'T_CA015_090728_010', '__version__', 'T_CA015_090728_015', 'T_CA042_090603_001', 'T_CA042_090429_020', 'T_CA065_090603_001', 'T_CA042_090902_010', 'T_CA065_090429_060', 'T_CA065_090910_001', '__globals__', 'CTPO_CA065_090902_001', 'T_CA015_090728_001', 'T_CA015_090728_005']

1, nhưng nói chung không được sử dụng. Chúng ta sẽ phải nghĩ ra một cách để bỏ qua chúng sau

In đẹp dữ liệu trong tệp

Để xem dữ liệu rõ hơn, chúng ta sẽ viết một hàm nhỏ đệ quy đi vào mọi khóa của từ điển hoặc mọi trường của mảng có cấu trúc và in dữ liệu, thụt lề để chúng ta biết mình đang ở cấp độ nào

Trong 2]

def print_mat_nested(d, indent=0, nkeys=0):
    """Pretty print nested structures from .mat files   
    Inspired by: `StackOverflow <http://stackoverflow.com/questions/3229419/pretty-printing-nested-dictionaries-in-python>`_
    """
    
    # Subset dictionary to limit keys to print.  Only works on first level
    if nkeys>0:
        d = {k: d[k] for k in d.keys()[:nkeys]}  # Dictionary comprehension: limit to first nkeys keys.

    if isinstance(d, dict):
        for key, value in d.iteritems():         # iteritems loops through key, value pairs
          print '\t' * indent + 'Key: ' + str(key)
          print_mat_nested(value, indent+1)

    if isinstance(d,np.ndarray) and d.dtype.names is not None:  # Note: and short-circuits by default
        for n in d.dtype.names:    # This means it's a struct, it's bit of a kludge test.
            print '\t' * indent + 'Field: ' + str(n)
            print_mat_nested(d[n], indent+1)

print_mat_nested(matdata, nkeys=10)

Key: T_CA042_090603_035
	Field: data
	Field: lpdata
Key: T_CA042_090603_030
	Field: data
	Field: lpdata
Key: T_CA065_090603_050
	Field: data
	Field: lpdata
Key: T_CA015_090429_015
	Field: data
	Field: lpdata
Key: T_CA015_090429_010
	Field: data
	Field: lpdata
Key: T_CA065_090603_010
	Field: data
	Field: lpdata
Key: T_CA042_090728_010
	Field: data
	Field: lpdata
Key: T_CA042_090429_010
	Field: data
	Field: lpdata
Key: CTPO_CA015_090429_001
	Field: data
	Field: lpdata
Key: F_CA042_090429_038
	Field: data
	Field: lpdata

OK, vậy mỗi phím có hai trường.

Key: T_CA042_090603_035
	Field: data
	Field: lpdata
Key: T_CA042_090603_030
	Field: data
	Field: lpdata
Key: T_CA065_090603_050
	Field: data
	Field: lpdata
Key: T_CA015_090429_015
	Field: data
	Field: lpdata
Key: T_CA015_090429_010
	Field: data
	Field: lpdata
Key: T_CA065_090603_010
	Field: data
	Field: lpdata
Key: T_CA042_090728_010
	Field: data
	Field: lpdata
Key: T_CA042_090429_010
	Field: data
	Field: lpdata
Key: CTPO_CA015_090429_001
	Field: data
	Field: lpdata
Key: F_CA042_090429_038
	Field: data
	Field: lpdata

4 và
Key: T_CA042_090603_035
	Field: data
	Field: lpdata
Key: T_CA042_090603_030
	Field: data
	Field: lpdata
Key: T_CA065_090603_050
	Field: data
	Field: lpdata
Key: T_CA015_090429_015
	Field: data
	Field: lpdata
Key: T_CA015_090429_010
	Field: data
	Field: lpdata
Key: T_CA065_090603_010
	Field: data
	Field: lpdata
Key: T_CA042_090728_010
	Field: data
	Field: lpdata
Key: T_CA042_090429_010
	Field: data
	Field: lpdata
Key: CTPO_CA015_090429_001
	Field: data
	Field: lpdata
Key: F_CA042_090429_038
	Field: data
	Field: lpdata

5. Điều đó có vẻ đủ hợp lý. Tệp gốc có cùng định dạng với mỗi biến là một cấu trúc với hai trường này. Ngoài ra, mỗi trường này là một cấu trúc lồng nhau chứa các trường như
Key: T_CA042_090603_035
	Field: data
	Field: lpdata
Key: T_CA042_090603_030
	Field: data
	Field: lpdata
Key: T_CA065_090603_050
	Field: data
	Field: lpdata
Key: T_CA015_090429_015
	Field: data
	Field: lpdata
Key: T_CA015_090429_010
	Field: data
	Field: lpdata
Key: T_CA065_090603_010
	Field: data
	Field: lpdata
Key: T_CA042_090728_010
	Field: data
	Field: lpdata
Key: T_CA042_090429_010
	Field: data
	Field: lpdata
Key: CTPO_CA015_090429_001
	Field: data
	Field: lpdata
Key: F_CA042_090429_038
	Field: data
	Field: lpdata

6,
Key: T_CA042_090603_035
	Field: data
	Field: lpdata
Key: T_CA042_090603_030
	Field: data
	Field: lpdata
Key: T_CA065_090603_050
	Field: data
	Field: lpdata
Key: T_CA015_090429_015
	Field: data
	Field: lpdata
Key: T_CA015_090429_010
	Field: data
	Field: lpdata
Key: T_CA065_090603_010
	Field: data
	Field: lpdata
Key: T_CA042_090728_010
	Field: data
	Field: lpdata
Key: T_CA042_090429_010
	Field: data
	Field: lpdata
Key: CTPO_CA015_090429_001
	Field: data
	Field: lpdata
Key: F_CA042_090429_038
	Field: data
	Field: lpdata

7, v.v.

Nhập các mảng có cấu trúc lồng nhau từ tệp ['T_CA042_090603_035', 'T_CA042_090603_030', 'T_CA065_090603_050', 'T_CA015_090429_015', 'T_CA015_090429_010', 'T_CA065_090603_010', 'T_CA042_090728_010', 'T_CA042_090429_010', 'CTPO_CA015_090429_001', 'F_CA042_090429_038', 'T_CA065_090429_040', 'T_CA065_090910_030', 'T_CA065_090728_040', 'T_CA042_090603_020', 'T_CA042_090728_001', 'T_CA065_090603_020', 'T_CA015_090429_001', 'T_CA042_090429_001', 'T_CA065_090429_020', 'T_CA015_090603_015', 'T_CA042_090902_001', 'T_CA065_090429_050', 'CTPO_CA015_090728_001', 'T_CA065_090910_020', 'T_CA065_090728_050', 'F_CA042_090728_038', 'CT_CA042_090902_038', 'T_CA015_090902_015', 'T_CA015_090902_005', '__header__', 'T_CA042_090728_030', 'T_CA042_090728_035', 'T_CA065_090603_030', 'T_CA015_090603_005', 'T_CA065_090429_030', 'T_CA015_090603_001', 'CT_CA042_090728_038', 'T_CA065_090910_050', 'T_CA065_090728_060', 'T_CA065_090603_040', 'T_CA015_090902_001', 'CTPO_CA042_090603_001', 'T_CA042_090728_020', 'T_CA065_090429_001', 'CTPO_CA015_090603_001', 'CTPO_CA015_090902_001', 'T_CA065_090910_040', 'T_CA015_090902_010', 'T_CA065_090728_001', 'CTPO_CA042_090728_001', 'CTPO_CA065_090603_001', 'CTPO_CA065_090728_001', 'CTPO_CA042_090429_001', 'CTPO_CA065_090429_001', 'CTPO_CA042_090902_001', 'T_CA065_090603_065', 'T_CA042_090728_042', 'T_CA065_090603_060', 'T_CA065_090728_010', 'T_CA042_090429_042', 'CT_CA042_090603_038', 'T_CA042_090902_030', 'T_CA042_090902_035', 'T_CA065_090429_010', 'T_CA042_090902_042', 'F_CA042_090902_038', 'T_CA065_090910_065', 'T_CA065_090910_060', 'T_CA042_090603_010', 'T_CA065_090728_020', 'T_CA042_090429_035', 'T_CA042_090429_030', 'T_CA042_090902_020', 'T_CA065_090429_065', 'F_CA042_090603_038', 'T_CA065_090910_010', 'CT_CA042_090429_038', 'T_CA015_090728_010', '__version__', 'T_CA015_090728_015', 'T_CA042_090603_001', 'T_CA042_090429_020', 'T_CA065_090603_001', 'T_CA042_090902_010', 'T_CA065_090429_060', 'T_CA065_090910_001', '__globals__', 'CTPO_CA065_090902_001', 'T_CA015_090728_001', 'T_CA015_090728_005'] 1

Hơi lạ là chức năng của chúng tôi không đi sâu hơn. Đáng lẽ nó phải tiếp tục đi qua từng cấp độ lồng nhau nếu dữ liệu ở mỗi cấp độ là một mảng có cấu trúc hoặc một lệnh chính tả. Thay vào đó, nó dừng lại trước khi đến các trường

Key: T_CA042_090603_035
	Field: data
	Field: lpdata
Key: T_CA042_090603_030
	Field: data
	Field: lpdata
Key: T_CA065_090603_050
	Field: data
	Field: lpdata
Key: T_CA015_090429_015
	Field: data
	Field: lpdata
Key: T_CA015_090429_010
	Field: data
	Field: lpdata
Key: T_CA065_090603_010
	Field: data
	Field: lpdata
Key: T_CA042_090728_010
	Field: data
	Field: lpdata
Key: T_CA042_090429_010
	Field: data
	Field: lpdata
Key: CTPO_CA015_090429_001
	Field: data
	Field: lpdata
Key: F_CA042_090429_038
	Field: data
	Field: lpdata

6 hoặc
Key: T_CA042_090603_035
	Field: data
	Field: lpdata
Key: T_CA042_090603_030
	Field: data
	Field: lpdata
Key: T_CA065_090603_050
	Field: data
	Field: lpdata
Key: T_CA015_090429_015
	Field: data
	Field: lpdata
Key: T_CA015_090429_010
	Field: data
	Field: lpdata
Key: T_CA065_090603_010
	Field: data
	Field: lpdata
Key: T_CA042_090728_010
	Field: data
	Field: lpdata
Key: T_CA042_090429_010
	Field: data
	Field: lpdata
Key: CTPO_CA015_090429_001
	Field: data
	Field: lpdata
Key: F_CA042_090429_038
	Field: data
	Field: lpdata

7

Hãy xem các trường của các mảng cấu trúc đó

Trong 3]

t = matdata['T_CA065_090603_010']   # Just look at one set of data

# Here we define a simple function to print the data type and shape.  It just saves us some repetition.
def dtype_shape_str(x):
    """ Return string containing the dtype and shape of x."""
    return str(x.dtype) + " " + str(x.shape)

print "t['data'] is a: " + dtype_shape_str(t['data'])
print "t['data'][0,0] is a: " + dtype_shape_str(t['data'][0,0])
print "t['data'][0,0]['time'] is a: " + dtype_shape_str(t['data'][0,0]['time'])
print "t['data'][0,0]['time'][0,0] is a: " + dtype_shape_str(t['data'][0,0]['time'][0,0])

t['data'] is a: object (1, 1)
t['data'][0,0] is a: [('time', 'O'), ('temp', 'O')] (1, 1)
t['data'][0,0]['time'] is a: object (1, 1)
t['data'][0,0]['time'][0,0] is a: float64 (32344, 1)

Hóa ra trường

Key: T_CA042_090603_035
	Field: data
	Field: lpdata
Key: T_CA042_090603_030
	Field: data
	Field: lpdata
Key: T_CA065_090603_050
	Field: data
	Field: lpdata
Key: T_CA015_090429_015
	Field: data
	Field: lpdata
Key: T_CA015_090429_010
	Field: data
	Field: lpdata
Key: T_CA065_090603_010
	Field: data
	Field: lpdata
Key: T_CA042_090728_010
	Field: data
	Field: lpdata
Key: T_CA042_090429_010
	Field: data
	Field: lpdata
Key: CTPO_CA015_090429_001
	Field: data
	Field: lpdata
Key: F_CA042_090429_038
	Field: data
	Field: lpdata

4 của biến của chúng ta là kiểu
t = matdata['T_CA065_090603_010']   # Just look at one set of data

# Here we define a simple function to print the data type and shape.  It just saves us some repetition.
def dtype_shape_str(x):
    """ Return string containing the dtype and shape of x."""
    return str(x.dtype) + " " + str(x.shape)

print "t['data'] is a: " + dtype_shape_str(t['data'])
print "t['data'][0,0] is a: " + dtype_shape_str(t['data'][0,0])
print "t['data'][0,0]['time'] is a: " + dtype_shape_str(t['data'][0,0]['time'])
print "t['data'][0,0]['time'][0,0] is a: " + dtype_shape_str(t['data'][0,0]['time'][0,0])
2. Đó là một chút kỳ lạ. Nhìn kỹ hơn, nó là 2D với hình dạng (1,1) nên về cơ bản nó là một đại lượng vô hướng. Dữ liệu thực tế thậm chí còn được lồng sâu hơn bên trong trường
Key: T_CA042_090603_035
	Field: data
	Field: lpdata
Key: T_CA042_090603_030
	Field: data
	Field: lpdata
Key: T_CA065_090603_050
	Field: data
	Field: lpdata
Key: T_CA015_090429_015
	Field: data
	Field: lpdata
Key: T_CA015_090429_010
	Field: data
	Field: lpdata
Key: T_CA065_090603_010
	Field: data
	Field: lpdata
Key: T_CA042_090728_010
	Field: data
	Field: lpdata
Key: T_CA042_090429_010
	Field: data
	Field: lpdata
Key: CTPO_CA015_090429_001
	Field: data
	Field: lpdata
Key: F_CA042_090429_038
	Field: data
	Field: lpdata

6, đây cũng là một mảng cấu trúc (1,1)

Làm cách nào để tải cấu trúc Matlab bằng Python?

Liên kết trực tiếp tới câu hỏi này .
nhập scipy. io như spio. lib = spio. tải trọng ('lib. chiếu')
nhập matlab. động cơ. tiếng anh = matlab. động cơ. start_matlab() Obj = eng. tải ('lib. mat')['lib'] Tên = eng. getfield(Obj, 'tên').
strs = tiếng anh. getfield(Obj, 'cấu trúc')
>>> tiếng anh. kích thước (StrLists)
>>> tiếng anh. kích thước (Str)

Làm cách nào để chuyển đổi Matlab sang Python?

Để chuyển đổi Matlab sang python, một công cụ có tên SMOP (Trình biên dịch Matlab nhỏ và Octave sang Python) được sử dụng . Công cụ này có khả năng hiểu mã Matlab cơ bản và sau đó phân tích cú pháp thành python. Mặc dù luôn có những hạn chế đối với mọi công cụ, nhưng công cụ này hoạt động tốt nhất đối với các mã cấp độ nhỏ.

Làm cách nào để sử dụng thư viện Matlab trong Python?

Để gọi các hàm Python từ MATLAB, hãy xem Gọi Python từ MATLAB. .
Sử dụng Mảng MATLAB trong Python. .
Mảng MATLAB dưới dạng biến Python. .
Truyền dữ liệu tới MATLAB từ Python. .
Xử lý dữ liệu được trả về từ MATLAB sang Python. .
Sử dụng các đối tượng xử lý MATLAB trong Python. .
Các kiểu số mặc định trong MATLAB và Python

Cách tạo từ điển trong Matlab?

3 cách tạo từ điển trong MATLAB . từ điển với các loại khóa và giá trị không được đặt. create an array of keys then an array of values and pass them both to dictionary() which then forms a dictionary from the set of elementwise pairs. dictionary with unset key and value types.