Hướng dẫn convert matlab struct to python - chuyển đổi cấu trúc matlab thành python
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: Show >>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ôi đang sử dụng MATLAB (2014b) và Python (2.7.6) để lập trình hỗn hợp. Tôi đã cố gắng chuyển một cấu trúc từ Matlab sang Python, nhưng tôi đã thất bại. Cấu trúc tôi muốn vượt qua là: dmodel = struct ('regr', regr, 'corr', corr, 'theta', theta. ', ...'regr',regr, 'corr',corr, 'theta',theta.', ... 'beta', fit.beta, 'gamma', fit.gamma, 'sigma2', sy.^2.*fit.sigma2, ...,fit.beta, 'gamma',fit.gamma, 'sigma2',sY.^2.*fit.sigma2, ... 'S', s, 'ssc', [ms; ss], 'ysc', [của tôi; Sy], ...,S, 'Ssc',[mS; sS], 'Ysc',[mY; sY], ... 'C', fit.c, 'ft', fit.ft, 'g', fit.g);,fit.C, 'Ft',fit.Ft, 'G',fit.G); Trong cấu trúc, tất cả các yếu tố là vô hướng ngoại trừ SSC và YSC. Kịch bản MATLAB trông như thế này: function model = fun_mat ()model=Fun_mat() ... một số lệnh;command; ... một số lệnh; mô hình = dmodel; chấm dứt Và kịch bản Python trông như thế này:matlab.engine as meng nhập matlab.engine với tư cách là meng Eng = meng.start_matlab () eng.quit() dmodel = eng.fun_mat () Hai kịch bản này nằm trong cùng một thư mục. Tôi có một tệp mat mà tôi truy cập bằng cách sử dụng
Từ MATLAB, ví dụ.mat chứa cấu trúc sau
Trong MATLAB, tôi có thể truy cập dữ liệu dễ dàng như Data2.lon, v.v. Nó cho tôi một số tùy chọn mặc dù như
Có thể bảo tồn cấu trúc tương tự trong Python không? Nếu không, làm thế nào để truy cập tốt nhất dữ liệu? Mã python hiện tại mà tôi đang sử dụng rất khó để làm việc. Cảm ơn Hỏi ngày 14 tháng 8 năm 2012 lúc 14:51Aug 14, 2012 at 14:51
MikepmikepmikeP 7812 Huy hiệu vàng10 Huy hiệu bạc19 Huy hiệu đồng2 gold badges10 silver badges19 bronze badges 5 Đã trả lời ngày 14 tháng 8 năm 2012 lúc 15:22Aug 14, 2012 at 15:22
MikepmikepmikeP 7812 Huy hiệu vàng10 Huy hiệu bạc19 Huy hiệu đồng2 gold badges10 silver badges19 bronze badges 1 Đã trả lời ngày 14 tháng 8 năm 2012 lúc 15:22
Khi tôi cần tải dữ liệu vào Python từ MATLAB được lưu trữ trong một mảng các cấu trúc {strut_1, struct_2} Tôi trích xuất một danh sách các khóa và giá trị từ đối tượng mà tôi tải bằng
Đã trả lời ngày 4 tháng 3 năm 2018 lúc 17:47Austin Downey Austin Downeyaustin Downey2 gold badges10 silver badges25 bronze badges 8832 Huy hiệu vàng10 Huy hiệu bạc25 Huy hiệu đồng
Điều này sẽ trả lại cấu trúc thảm làm từ điểnDec 8, 2020 at 8:36
idan357idan357idan357 Đã trả lời ngày 8 tháng 12 năm 2020 lúc 8:364 silver badges14 bronze badges 3224 Huy hiệu bạc14 Huy hiệu Đồng
Sau đó, sử dụng mã của Mergen trong SCIPY.IO.LoadMat Cấu trúc lồng nhau (tức là từ điển)
Đã trả lời ngày 29 tháng 4 năm 2015 lúc 20:24Apr 29, 2015 at 20:24
BRAULIOBAULIObraulio 4202 Huy hiệu bạc9 Huy hiệu đồng2 silver badges9 bronze badges 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.
Tôi có thể sử dụng mã 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.
Làm thế nào để bạn chuyển đổi một cấu trúc thành một mảng trong matlab?C = struct2cell (s) chuyển đổi một cấu trúc thành một mảng tế bào.Mảng ô c chứa các giá trị được sao chép từ các trường của s.Hàm struct2Cell không trả về tên trường.Để trả về tên trường trong một mảng ô, hãy sử dụng hàm FieldNames. converts a structure into a cell array. The cell array C contains values copied from the fields of S . The struct2cell function does not return field names. To return the field names in a cell array, use the fieldnames function.
Làm cách nào để sử dụng thư viện MATLAB trong Python?Để khởi động MATLAB Engine trong phiên Python, hãy cài đặt API động cơ dưới dạng gói Python ... Tập lệnh thiết lập Python để cài đặt API MATLAB Engine .. Cài đặt API MATLAB Engine cho Python ở các vị trí Nondefault .. |