Can't we call python operators directly within MATLAB?
Show older comments
Hi,
Some python operators are already implemented in MATLAB, however I am unable to call them directly. Is it not possible? For instance:
a = py.math.factorial(100);
a.__add__(a);
returns:
a.__add__(a)
↑
Error: Invalid text character. Check for unsupported symbol, invisible character, or pasting of non-ASCII
characters.
Calling __add__ within python is perfectly valid. If I try to execute a + a, MATLAB correctly returns a py.long (in this case, MATLAB calls the python operator as expected), however when I execute:
a / py.math.factorial(50)
It returns a double 3.068518756254966e+93 instead of a py.long. It seems that MATLAB is calling mrdivide instead of __truediv__. That's why I would like to call the operators directly. Am I missing something? Is it possible to configure MATLAB for reading the character underscore _?
PS: The current workaround is to use numpy:
py.numpy.divide(a, py.math.factorial(50))
which correctly returns:
Python long with properties:
denominator: [1×1 py.long]
imag: [1×1 py.long]
numerator: [1×1 py.long]
real: [1×1 py.long]
3068518756254966037202730459529469739228459721684688959447786986982158958772355072000000000000
Accepted Answer
More Answers (0)
Categories
Find more on Call Python from MATLAB in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!