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
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
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: lpdata4 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: lpdata5. Đ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: lpdata6, 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: lpdata7, 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'] 1Hơ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: lpdata6 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: lpdata7 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: lpdata4 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: lpdata6, đâ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. |