Chuyển đổi Matlab sang Python

Cắt 4 phần tử của kích thước bên ngoài bắt đầu từ 0 và 5 phần tử của kích thước bên trong, bắt đầu từ phần tử thứ hai

Lát kéo [w/sải]

git clone //github.com/ebranlard/matlab2python
cd matlab2python
# install dependencies
python -m pip install --user -r requirements.txt 
# make the packages available from any directory
python -m pip install -e .  
#Optional: run tests
pytest
#Optional: try it directly
python matlab2python.py tests/files/fSpectrum.m -o fSpectrum.py
78

git clone //github.com/ebranlard/matlab2python
cd matlab2python
# install dependencies
python -m pip install --user -r requirements.txt 
# make the packages available from any directory
python -m pip install -e .  
#Optional: run tests
pytest
#Optional: try it directly
python matlab2python.py tests/files/fSpectrum.m -o fSpectrum.py
79

git clone //github.com/ebranlard/matlab2python
cd matlab2python
# install dependencies
python -m pip install --user -r requirements.txt 
# make the packages available from any directory
python -m pip install -e .  
#Optional: run tests
pytest
#Optional: try it directly
python matlab2python.py tests/files/fSpectrum.m -o fSpectrum.py
90

Cắt N phần tử của kích thước bên ngoài bắt đầu từ phần tử đầu tiên và chọn từng phần tử thứ hai cho đến khi kết thúc. Ở kích thước bên trong, bắt đầu từ phần tử đầu tiên và lấy từng mục thứ ba và dừng lại ở mục thứ 8

Nhân bản một chiều

git clone //github.com/ebranlard/matlab2python
cd matlab2python
# install dependencies
python -m pip install --user -r requirements.txt 
# make the packages available from any directory
python -m pip install -e .  
#Optional: run tests
pytest
#Optional: try it directly
python matlab2python.py tests/files/fSpectrum.m -o fSpectrum.py
91

git clone //github.com/ebranlard/matlab2python
cd matlab2python
# install dependencies
python -m pip install --user -r requirements.txt 
# make the packages available from any directory
python -m pip install -e .  
#Optional: run tests
pytest
#Optional: try it directly
python matlab2python.py tests/files/fSpectrum.m -o fSpectrum.py
92

git clone //github.com/ebranlard/matlab2python
cd matlab2python
# install dependencies
python -m pip install --user -r requirements.txt 
# make the packages available from any directory
python -m pip install -e .  
#Optional: run tests
pytest
#Optional: try it directly
python matlab2python.py tests/files/fSpectrum.m -o fSpectrum.py
93

Lấy một tensor 4x4 2D và biến nó thành một tensor 5x4x4 3D trong đó mọi kích thước bên ngoài sao chép hai kích thước bên trong bên trong

Tập lệnh python để chuyển đổi tệp matlab hoặc dòng mã matlab sang python. Dự án này đang trong giai đoạn alpha. Việc triển khai này phụ thuộc rất nhiều vào dự án SMOP của Victor Leikehman. Việc triển khai hiện tại xoay quanh SMOP, với những điểm khác biệt sau

  • Nó cố gắng tạo mã không dựa trên
    python path/to/matlab2python.py file.m -o file.py
    3 mà chỉ dựa trên các mô-đun python thông thường như
    python path/to/matlab2python.py file.m -o file.py
    4
  • Nó sử dụng các phím tắt điển hình như
    python path/to/matlab2python.py file.m -o file.py
    5 thay vì
    python path/to/matlab2python.py file.m -o file.py
    4
  • Nó cố gắng lập chỉ mục lại các mảng và vòng lặp, bắt đầu từ 0 thay vì 1
  • Nó không sử dụng các lớp bên ngoài
    python path/to/matlab2python.py file.m -o file.py
    7 và
    python path/to/matlab2python.py file.m -o file.py
    8 từ
    python path/to/matlab2python.py file.m -o file.py
    3
  • Hỗ trợ cơ bản cho các lớp Matlab được thêm vào. Các thuộc tính được khai báo trong phần thân của lớp được khởi tạo trong hàm tạo
  • Do tất cả những điều trên, mã kết quả là "kém an toàn hơn" nhưng có thể hơi gần với những gì người dùng sẽ viết

Việc triển khai này được thực hiện đơn giản, vì về cơ bản, nó sử dụng một tập lệnh phụ trợ khác với tập lệnh được sử dụng bởi SMOP, ở đây được gọi là

python path/to/matlab2python.py file.m -o file.py
0. Một số thay thế chức năng đã được thêm trực tiếp vào đó. Hỗ trợ bổ sung cho các lớp, nhập mô-đun và thay thế tinh chỉnh khác [hoặc hack. ] được thực hiện trong tệp
python path/to/matlab2python.py file.m -o file.py
1

Cài đặt

Mã được viết bằng python, bạn có thể truy cập nó như sau

git clone //github.com/ebranlard/matlab2python
cd matlab2python
# install dependencies
python -m pip install --user -r requirements.txt 
# make the packages available from any directory
python -m pip install -e .  
#Optional: run tests
pytest
#Optional: try it directly
python matlab2python.py tests/files/fSpectrum.m -o fSpectrum.py

Cách sử dụng

kịch bản chính

Tập lệnh chính ở thư mục gốc của kho lưu trữ có thể thực thi được và có một vài cờ dòng lệnh [một số được lấy trực tiếp từ SMOP]. Để chuyển đổi tệp

python path/to/matlab2python.py file.m -o file.py
2 sang
python path/to/matlab2python.py file.m -o file.py
3, chỉ cần gõ

python path/to/matlab2python.py file.m -o file.py

trong đó

python path/to/matlab2python.py file.m -o file.py
4 là đường dẫn đến tập lệnh
python path/to/matlab2python.py file.m -o file.py
5

từ con trăn

Gói python cũng có thể được sử dụng trực tiếp để thực hiện chuyển đổi tệp hoặc dòng mã

________số 8

Tôi có nên sử dụng cái này không

Nếu bạn cần một tập lệnh thực hiện các chuyển đổi rõ ràng từ matlab sang python, thì

python path/to/matlab2python.py file.m -o file.py
6 hy vọng sẽ phù hợp với bạn. Những chuyển đổi này là ví dụ

  • cú pháp [
    python path/to/matlab2python.py file.m -o file.py
    7,
    python path/to/matlab2python.py file.m -o file.py
    8,
    python path/to/matlab2python.py file.m -o file.py
    9,
    import matlabparser as mpars
    # --- Convert a matlab file 
    pylines = mpars.matlab2python['path/to/file.m', output='file.py']
    
    # --- Convert matlab lines [string or list of strings]
    mlines="""# a comment
    x = linspace[0,1,100];
    y = cos[x] + x**2;
    """
    pylines = mpars.matlablines2python[mlines, output='stdout']
    0, không còn
    import matlabparser as mpars
    # --- Convert a matlab file 
    pylines = mpars.matlab2python['path/to/file.m', output='file.py']
    
    # --- Convert matlab lines [string or list of strings]
    mlines="""# a comment
    x = linspace[0,1,100];
    y = cos[x] + x**2;
    """
    pylines = mpars.matlablines2python[mlines, output='stdout']
    1]
  • vết lõm
  • ngoặc đơn sang ngoặc đơn
  • thay thế chức năng tích hợp đơn giản [________ 82, ________ 83, ________ 84,
    import matlabparser as mpars
    # --- Convert a matlab file 
    pylines = mpars.matlab2python['path/to/file.m', output='file.py']
    
    # --- Convert matlab lines [string or list of strings]
    mlines="""# a comment
    x = linspace[0,1,100];
    y = cos[x] + x**2;
    """
    pylines = mpars.matlablines2python[mlines, output='stdout']
    5]
  • thay thế numpy đơn giản như
    import matlabparser as mpars
    # --- Convert a matlab file 
    pylines = mpars.matlab2python['path/to/file.m', output='file.py']
    
    # --- Convert matlab lines [string or list of strings]
    mlines="""# a comment
    x = linspace[0,1,100];
    y = cos[x] + x**2;
    """
    pylines = mpars.matlablines2python[mlines, output='stdout']
    6 thành
    import matlabparser as mpars
    # --- Convert a matlab file 
    pylines = mpars.matlab2python['path/to/file.m', output='file.py']
    
    # --- Convert matlab lines [string or list of strings]
    mlines="""# a comment
    x = linspace[0,1,100];
    y = cos[x] + x**2;
    """
    pylines = mpars.matlablines2python[mlines, output='stdout']
    7 hoặc
    import matlabparser as mpars
    # --- Convert a matlab file 
    pylines = mpars.matlab2python['path/to/file.m', output='file.py']
    
    # --- Convert matlab lines [string or list of strings]
    mlines="""# a comment
    x = linspace[0,1,100];
    y = cos[x] + x**2;
    """
    pylines = mpars.matlablines2python[mlines, output='stdout']
    8 thành
    import matlabparser as mpars
    # --- Convert a matlab file 
    pylines = mpars.matlab2python['path/to/file.m', output='file.py']
    
    # --- Convert matlab lines [string or list of strings]
    mlines="""# a comment
    x = linspace[0,1,100];
    y = cos[x] + x**2;
    """
    pylines = mpars.matlablines2python[mlines, output='stdout']
    9
  • các chức năng linh tinh khác như
    python path/to/matlab2python.py file.m -o file.py
    30,
    python path/to/matlab2python.py file.m -o file.py
    31,
    python path/to/matlab2python.py file.m -o file.py
    32 được thay thế bằng python ,
  • vân vân

Như đã đề cập ở trên, SMOP thực hiện rất tốt việc tạo mã an toàn. Tuy nhiên, cả

python path/to/matlab2python.py file.m -o file.py
33 và
python path/to/matlab2python.py file.m -o file.py
6 đều không tạo mã sẵn sàng sản xuất [có thể trong một số trường hợp]. Hầu hết thời gian, người dùng sẽ phải xem qua mã và thực hiện các điều chỉnh và viết lại một số. Trên thực tế,
python path/to/matlab2python.py file.m -o file.py
6 có thể sẽ kém hơn một chút so với SMOP trong việc tạo mã hoạt động vượt trội. Nhưng cuối cùng, mã do
python path/to/matlab2python.py file.m -o file.py
6 tạo ra sẽ ít yêu cầu tái cấu trúc hơn và giúp người dùng chuyển đổi. Như tác giả của SMOP đã đề cập, rất khó để không che giấu hương vị matlab khỏi mã được tạo và cũng rất khó để chuyển đổi hoàn toàn mã mà không giới thiệu các lớp được bao bọc sao cho
python path/to/matlab2python.py file.m -o file.py
7. Việc triển khai ________ 06 cố gắng thực hiện điều đó, với cái giá là kém an toàn hơn

Tôi đã viết tập lệnh bao bọc này cho nhu cầu của riêng mình. Tôi đã sẵn sàng để chuyển đổi một loạt các tập lệnh matlab theo cách thủ công, nhưng tôi nghĩ rằng tôi có thể có một tập lệnh để tự động hóa một số chuyển đổi và định dạng đơn giản. Tôi đã bắt đầu triển khai nhanh chóng và bẩn thỉu trước khi phát hiện ra

python path/to/matlab2python.py file.m -o file.py
33. Cuối cùng, tôi đã hợp nhất cách triển khai nhanh và bẩn của mình với khung phân tích cú pháp mạnh hơn được sử dụng bởi SMOP. Hy vọng điều này có thể hữu ích cho người khác. Nếu vậy, hãy đóng góp

Đóng góp

Mọi đóng góp cho dự án này đều được hoan nghênh. Nếu bạn thấy dự án này hữu ích, bạn cũng có thể mua cho tôi một ly cà phê [tặng một số tiền nhỏ] bằng liên kết bên dưới

Tôi có thể chuyển đổi mã MATLAB sang Python không?

Để 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 để chạy mã MATLAB bằng Python mà không cần MATLAB?

Tóm lại. bạn không thể . Bạn cần có bản cài đặt MATLAB được cấp phép, đang hoạt động, bản cài đặt này sẽ được gọi ở chế độ nền. Nếu không có bản cài đặt MATLAB hoạt động, được cấp phép, bạn không thể chạy mã MATLAB.

Chủ Đề