File Exchange

image thumbnail

SymPy CAS in MATLAB

version 1.4.0.0 (2.49 KB) by Jonathan Lister
Enables using Python's SymPy CAS in MATLAB

4 Downloads

Updated 21 Sep 2015

View License

This function utilizes Python's SymPy module to provide symbolic capabilities for those of us who do not have the Symbolic Toolbox or a version of Matlab with Python support at our disposal. The function passes strings to and from Python via the System command. Computation of the result is easily accomplished via the vectorize and inline functions.
Example:
result = symeval('integrate','"x^2+3x-4"','x');
y = vectorize(inline(result));
plot(y([1:100])

This can be slow since the Python interpreter is started and shutdown every time the function is called. However, successive calls are sped up due to OS caching.

Another option is to use the pymex module posted on this file exchange:
http://www.mathworks.com/matlabcentral/fileexchange/27255-pymex

The best way is to just call the library directly with a version of MATLAB that supports Python.

Cite As

Jonathan Lister (2020). SymPy CAS in MATLAB (https://www.mathworks.com/matlabcentral/fileexchange/42787-sympy-cas-in-matlab), MATLAB Central File Exchange. Retrieved .

Comments and Ratings (3)

Jonathan Lister

The entry "Maxima Cas in Matlab" works better IMO.

Jonathan Lister

Try:

result = symeval('integrate','"(cos(x)/x) - (sin(x)/x^2)"','x')
f = vectorize(inline(result));
plot(f(1:.1:100))

Jonathan Lister

make sure the equation string that you pass in is enclosed within a double quotes as well as the single quote...

funstr = '"x^2 + 2*x + 1"'
result = symeval('factor',funstr)

Updates

1.4.0.0

Updated description and comments to reflect changes in MATLAB's capabilities.

1.4.0.0

Added image and changed title text...

1.3.0.0

updated title, description, and other requirements text

MATLAB Release Compatibility
Created with R2012a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Acknowledgements

Inspired by: MAXIMA CAS in MATLAB

Inspired: MAXIMA CAS in MATLAB