Skip to main content

mat2py mean to be drop-in replacement of Matlab by wrapping Numpy/Scipy/... packages.

Project description

mat2py

Build status Python Version Dependencies Status

Code style: black Security: bandit Pre-commit Semantic Versions License Coverage Report

mat2py mean to be drop-in replacement of Matlab by wrapping Numpy/Scipy/... packages.

For instance usage, try the Online Matlab Emulator here. Please note:

  • You may need the latest modern browser for using this APP(check the console log by pressing F12).
  • Loading the environment may take quite long time, especially for the first time. Try refresh the page incase bad network connection.
  • Do a feature request when encounter NotImplementedError.

Coverage Report

Try copy-paste following code to the emulator and feel its capability:

xv = [0.5;0.2;1.0;0;0.8;0.5];
yv = [1.0;0.1;0.7;0.7;0.1;1];
xq = [0.1;0.5;0.9;0.2;0.4;0.5;0.5;0.9;0.6;0.8;0.7;0.2];
yq = [0.4;0.6;0.9;0.7;0.3;0.8;0.2;0.4;0.4;0.6;0.2;0.6];

[in,on] = inpolygon(xq,yq,xv,yv);

plot(xv,yv, ... % polygon
     xq(in&~on),yq(in&~on),'r+', ...  % points strictly inside
     xq(on),yq(on),'k*', ... % points on edge
     xq(~in),yq(~in),'bo' ... % points outside
)

The final goal of this APP is to create a serverless, Matlab compatiable console completely in end-users' browser.

First Steps

Installation

python3 -m pip install -U mat2py

or install with Poetry

poetry add mat2py

Install the translator mh_python if needed

python3 -m pip install -U mh-python

Try the example demo_fft

# download the one already converted and formatted
wget https://raw.githubusercontent.com/mat2py/mat2py/main/tests/test_example/demo_fft.py

# or convert it yourself
echo "wget https://raw.githubusercontent.com/mat2py/miss_hit/matlab2numpy/tests/mat2np/demo_fft.m"
echo "mh_python --python-alongside --format demo_fft.m"

# run it...
python3 demo_fft.py

You can also try out the online translator by modifiy the example or put your own code.

For Developer

Initialize your code

  1. Clone mat2py:
git clone https://github.com/mat2py/mat2py 
  1. If you don't have Poetry installed run:
make poetry-download
source ~/.poetry/env
  1. Initialize poetry and install pre-commit hooks:
make install
make pre-commit-install
  1. Run the lint to check:
make lint

ToDO

  • A serverless web service for run .m/.py code inside browser
  • Complete set of MATLAB® Basic Functions
  • Copy-on-Write beheviour
  • A cleaner class hierarchy
  • Enable lint(mypy, UT, etc.)

📈 Releases

You can see the list of available releases on the GitHub Releases page.

We follow Semantic Versions specification.

We use Release Drafter. As pull requests are merged, a draft release is kept up-to-date listing the changes, ready to publish when you’re ready. With the categories option, you can categorize pull requests in release notes using labels.

🛡 License

License

This project is licensed under the terms of the MIT license. See LICENSE for more details.

📃 Citation

@misc{mat2py,
  author = {mat2py},
  title = {mat2py mean to be drop-in replacement of Matlab by wrapping Numpy/Scipy/... packages.},
  year = {2021},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/mat2py/mat2py}}
}

Credits 🚀 Your next Python package needs a bleeding-edge project structure.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mat2py-0.0.20.tar.gz (50.7 kB view details)

Uploaded Source

Built Distribution

mat2py-0.0.20-py3-none-any.whl (61.2 kB view details)

Uploaded Python 3

File details

Details for the file mat2py-0.0.20.tar.gz.

File metadata

  • Download URL: mat2py-0.0.20.tar.gz
  • Upload date:
  • Size: 50.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.13

File hashes

Hashes for mat2py-0.0.20.tar.gz
Algorithm Hash digest
SHA256 6a62521da2c2d7509af72125b3189121ddf0283422f71c3ccd09cc5119233853
MD5 d74bc86728ced5e862c7f5fb77abe565
BLAKE2b-256 06775fcf3b3aad3fe5fb84f5d3e17a0aa4fbd0d01bdfd23c6593e2f8b715f4cc

See more details on using hashes here.

File details

Details for the file mat2py-0.0.20-py3-none-any.whl.

File metadata

  • Download URL: mat2py-0.0.20-py3-none-any.whl
  • Upload date:
  • Size: 61.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.13

File hashes

Hashes for mat2py-0.0.20-py3-none-any.whl
Algorithm Hash digest
SHA256 8824d838d6b407f94c1be461f54f7cac392cab96a87fbedf8182c7436e0c089b
MD5 bda35ded82fdaa1d822719058faf024e
BLAKE2b-256 c7edeb9ebe22a4a7efdddac6b863f1fd5a5afe7a1882fb136ee4ac22303b1a00

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page