Hướng dẫn convert matlab struct to python dict - chuyển đổi cấu trúc matlab thành python dict

Nội dung chính

Ví dụ này cho thấy cách sử dụng các biến từ điển Python® (

studentID = 
  Python dict with no properties.

    {'Robert': 357.0, 'Mary': 229.0, 'Jack': 391.0}

2) trong MATLAB®.

Để gọi hàm Python có đối số đầu vào

studentID = 
  Python dict with no properties.

    {'Robert': 357.0, 'Mary': 229.0, 'Jack': 391.0}

2, hãy tạo biến
studentID = 
  Python dict with no properties.

    {'Robert': 357.0, 'Mary': 229.0, 'Jack': 391.0}

4. Để chuyển đổi
studentID = 
  Python dict with no properties.

    {'Robert': 357.0, 'Mary': 229.0, 'Jack': 391.0}

2 thành biến MATLAB, hãy gọi hàm
studentID = 
  Python dict with no properties.

    {'Robert': 357.0, 'Mary': 229.0, 'Jack': 391.0}

6.

Tạo biến Python studentID = Python dict with no properties. {'Robert': 357.0, 'Mary': 229.0, 'Jack': 391.0} 2

Tạo một biến

studentID = 
  Python dict with no properties.

    {'Robert': 357.0, 'Mary': 229.0, 'Jack': 391.0}

2 để chuyển đến hàm Python. Hàm
studentID = 
  Python dict with no properties.

    {'Robert': 357.0, 'Mary': 229.0, 'Jack': 391.0}

9 tạo ra các đối số từ khóa.

studentID = py.dict(pyargs('Robert',357,'Mary',229,'Jack',391))

studentID = 
  Python dict with no properties.

    {'Robert': 357.0, 'Mary': 229.0, 'Jack': 391.0}

Ngoài ra, tạo cấu trúc MATLAB và chuyển đổi nó thành biến

studentID = 
  Python dict with no properties.

    {'Robert': 357.0, 'Mary': 229.0, 'Jack': 391.0}

2.

S = struct('Robert',357,'Mary',229,'Jack',391);
studentID = py.dict(S)

studentID = 
  Python dict with no properties.

    {'Robert': 357.0, 'Mary': 229.0, 'Jack': 391.0}

Sử dụng loại Python studentID = Python dict with no properties. {'Robert': 357.0, 'Mary': 229.0, 'Jack': 391.0} 2 trong MATLAB

Để chuyển đổi loại

studentID = 
  Python dict with no properties.

    {'Robert': 357.0, 'Mary': 229.0, 'Jack': 391.0}

2 được trả về từ hàm Python sang biến MATLAB, hãy gọi
studentID = 
  Python dict with no properties.

    {'Robert': 357.0, 'Mary': 229.0, 'Jack': 391.0}

6.

Giả sử bạn có chức năng Python trả về các mục menu và giá trong một đối tượng

studentID = 
  Python dict with no properties.

    {'Robert': 357.0, 'Mary': 229.0, 'Jack': 391.0}

2 có tên
S = struct('Robert',357,'Mary',229,'Jack',391);
studentID = py.dict(S)
5. Để chạy mã này trong MATLAB, hãy tạo biến này.

order = py.dict(pyargs('soup',3.57,'bread',2.29,'bacon',3.91,'salad',5.00))

order = 
  Python dict with no properties.

    {'soup': 3.57, 'bread': 2.29, 'bacon': 3.91, 'salad': 5.0}

Chuyển đổi

S = struct('Robert',357,'Mary',229,'Jack',391);
studentID = py.dict(S)
5 thành biến MATLAB.

myOrder = struct with fields:
     soup: 3.5700
    bread: 2.2900
    bacon: 3.9100
    salad: 5

Hiển thị giá của thịt xông khói bằng cú pháp MATLAB.

Hiển thị giá của thịt xông khói bằng cú pháp Python. Loại biến

S = struct('Robert',357,'Mary',229,'Jack',391);
studentID = py.dict(S)
7 là gấp đôi, bạn có thể sử dụng trong MATLAB.

Một từ điển có các cặp khóa và giá trị. Hiển thị các mục menu trong biến

S = struct('Robert',357,'Mary',229,'Jack',391);
studentID = py.dict(S)
5 bằng hàm Python
S = struct('Robert',357,'Mary',229,'Jack',391);
studentID = py.dict(S)
9.

ans = 
  Python dict_keys with no properties.

    dict_keys(['soup', 'bread', 'bacon', 'salad'])

Hiển thị tất cả giá bằng cách sử dụng hàm Python

studentID = 
  Python dict with no properties.

    {'Robert': 357.0, 'Mary': 229.0, 'Jack': 391.0}

0.

ans = 
  Python dict_values with no properties.

    dict_values([3.57, 2.29, 3.91, 5.0])

Truyền đối số studentID = Python dict with no properties. {'Robert': 357.0, 'Mary': 229.0, 'Jack': 391.0} 2 cho phương pháp Python

Lớp Python

studentID = 
  Python dict with no properties.

    {'Robert': 357.0, 'Mary': 229.0, 'Jack': 391.0}

2 có phương pháp
studentID = 
  Python dict with no properties.

    {'Robert': 357.0, 'Mary': 229.0, 'Jack': 391.0}

3. Để chạy mã này, hãy tạo một biến
studentID = 
  Python dict with no properties.

    {'Robert': 357.0, 'Mary': 229.0, 'Jack': 391.0}

2 của bệnh nhân và kết quả xét nghiệm.

patient = py.dict(pyargs('name', 'John Doe', ...
'test1', [], ...
'test2', [220.0, 210.0, 205.0], ...
'test3', [180.0, 178.0, 177.5]));

Chuyển đổi tên bệnh nhân thành chuỗi MATLAB.

Cập nhật và hiển thị kết quả cho

studentID = 
  Python dict with no properties.

    {'Robert': 357.0, 'Mary': 229.0, 'Jack': 391.0}

5 bằng phương pháp
studentID = 
  Python dict with no properties.

    {'Robert': 357.0, 'Mary': 229.0, 'Jack': 391.0}

3.

studentID = 
  Python dict with no properties.

    {'Robert': 357.0, 'Mary': 229.0, 'Jack': 391.0}

0

studentID = 
  Python dict with no properties.

    {'Robert': 357.0, 'Mary': 229.0, 'Jack': 391.0}

1

  • Phần mềm dùng thử
  • Phần mềm dùng thử
  • Cập nhật sản phẩm
  • Cập nhật sản phẩm

Bạn có chia sẻ thêm chi tiết về cách tạo tệp "lib.mat" không? Tôi đã thử các bước sau:

>>lib.name='hello''hello'

>>Strs(1).id=1

>>Strs(2).id=2

>>Strs(3).id=3

>> lib.strs = strs

>> lib.strlist = {1,2,3}

>> lưu ('lib', 'lib'))'lib', 'lib')

Đây là những gì tôi thấy trong Python:

>>> obj = eng.load ('lib.mat') ['lib']]'lib.mat')['lib']

...

ValueError: Chỉ có thể trả lại một cấu trúc vô hướng từ MATLABscalar struct can be returned from MATLAB

Đây là hành vi dự kiến ​​vì mảng struct không được hỗ trợ theo tài liệu:

https://www.mathworks.com/help/matlab/matlab_external/handle-data-returned-from-matlab-to-python.html

Trong trường hợp này, bản thân "lib" là một cấu trúc vô hướng nhưng phần tử "STRS" là một mảng cấu trúc.

Tương đương của một cấu trúc matlab trong Python là gì?

Python không chính xác có điều tương tự như một cấu trúc trong Matlab. Bạn có thể đạt được một cái gì đó giống như nó bằng cách xác định một lớp trống và sau đó xác định các thuộc tính của lớp. Bạn có thể kiểm tra xem một đối tượng có thuộc tính cụ thể sử dụng HasAttr không.. You can achieve something like it by defining an empty class and then defining attributes of the class. You can check if an object has a particular attribute using hasattr.

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

Để chuyển đổi MATLAB thành Python, một công cụ có tên SMOP (Matlab nhỏ và quãng tám thành trình biên dịch 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 nó vào Python.Mặc dù luôn có những hạn chế đối với mọi công cụ, công cụ này hoạt động tốt nhất cho các mã cấp độ nhỏ.a tool named SMOP (Small Matlab and Octave to Python Compiler) is used. This tool is capable of understanding basic Matlab code and then parsing it to python. Although there are always limitations to every tool, this tool works best for small-level codes.

Bạn có thể sử dụng Matlab trong Python không?

MATLAB® cung cấp tích hợp hai chiều linh hoạt với nhiều ngôn ngữ lập trình, bao gồm cả Python.Điều này cho phép các nhóm khác nhau làm việc cùng nhau và sử dụng các thuật toán MATLAB trong các hệ thống phần mềm sản xuất và CNTT.® provides a flexible, two-way integration with many programming languages, including Python. This allows different teams to work together and use MATLAB algorithms within production software and IT systems.

Từ điển trong Matlab là gì?

Từ điển dữ liệu là một kho dữ liệu liên quan đến mô hình của bạn.Nó cho phép bạn lưu trữ dữ liệu thiết kế, xác định các tham số và tín hiệu và nó cho phép bạn bao gồm dữ liệu xác định hành vi của mô hình.a persistent repository of data that is relevant to your model. It lets you store design data, which defines parameters and signals, and it lets you include data that defines the behavior of the model.