高级的主题
理解Python和MATLAB进口
命令
的进口
声明中没有相同的功能在MATLAB®在Python中,®。
负载Python模块MATLAB
Python代码使用进口
语句加载,使代码可访问。MATLAB时自动加载Python类型py。
前面的模块名称和函数名。这个代码显示了如何调用一个函数包装
在Python模块textwrap
。
Python代码 | MATLAB代码 |
---|---|
进口textwrap pS1 = textwrap。包装(“这是一个字符串”) |
S1 = py.textwrap.wrap (“这是一个字符串”);
|
谨慎
在MATLAB,不要类型:
进口pythonmodule
从不叫:
进口py。*
如果你做,那么MATLAB调用Python函数代替的MATLAB函数相同的名称。这可能会导致意想不到的行为。如果你输入这个进口
命令,然后你必须调用MATLAB命令:
明确进口
缩短类或函数名
Python从进口…
语句可以引用一个模块不使用完全限定名称。使用MATLAB进口
函数。这个代码显示了如何引用函数包装
在Python模块textwrap
。自包装
不是一个MATLAB函数,你可以缩短调用语法使用吗进口
函数。调用此命令后,您不需要输入包(py
)和模块(textwrap
)的名字。
Python代码 | MATLAB代码 |
---|---|
进口textwrap pS1 = textwrap。包装(“这是一个字符串”)from textwrap import wrap pS2 = wrap('another string') |
S1 = py.textwrap.wrap (“这是一个字符串”);进口py.textwrap.wrapS2 =包装(另一个字符串的); |
进口mymod为毫米 |
毫米= py.importlib.import_module ('mymod”);%使用毫米作为别名访问功能mymod |
帮助Python功能
Python功能的完整描述,请参考外部资源,特别是,https://www.python.org。有不同版本的Python文档,所以一定要参考版本对应版本在您的系统上。许多例子在MATLAB文档是指在Python标准库函数。
在第三方或用户定义Python模块使用功能,请参考你的供应商产品文档信息如何安装的模块和其功能的详细信息。
MATLABpy.help
命令显示Python帮助发现www.python.org/doc
。帮助可以广泛、包和类时可能不是有用MATLAB命令窗口中显示。
包
py.help (“textwrap”)
类
py.help (“textwrap.TextWrapper”)
类的方法
py.help (“textwrap.TextWrapper.wrap”)
函数
py.help (“textwrap.fill”)
如果从MATLAB将显示一个错误消息Python错误:
更多信息,请参阅您的Python文档。
请注意
选项卡完成不显示可用的Python功能。
你不能使用交互式Python帮助——调用py.help
没有输入参数——在MATLAB。
调用Python方法MATLAB名称冲突
如果一个Python方法名称是一个密封的方法的名称的MATLAB基类或保留功能,然后用MATLAB重命名方法。新名称从字母开始x
和改变原来的名字的第一个字母大写。例如,MATLAB重命名Python方法猫
来xCat
。的保留方法,明白了修改默认行为的方法。
如果一个方法的名字是MATLAB的关键字,然后用MATLAB调用matlab.lang.makeValidName
重命名方法。关键字的列表,请参阅iskeyword
。
如果生成的名称是一个重复的名称,那么MATLAB重命名方法使用matlab.lang.makeUniqueStrings
。
调用Pythoneval
函数
这个例子展示了如何对表达式求值x + y
使用Pythoneval
命令。阅读的帮助eval
。
py.help (“eval”)
帮助在模块内置函数eval __builtin__: eval (…) eval(源(globals[,当地人]])- >价值评估源上下文中的全局变量和当地人。源可能是一个代表一个Python字符串表达式或代码编译()返回的对象。全局变量必须字典和当地人可以是任何映射,违约到当前全局和当地居民。如果只有全局,当地人违约。
评估一个表达式,通过Pythondict
值全局变量
名称空间参数。
创建一个Pythondict
变量的x
和y
值。
工作区= py.dict (pyargs (“x”,1“y”6))
工作区= Python dict没有属性。{y: 6.0,“x”: 1.0}
对表达式求值。
res = py.eval (“x + y”工作空间)
res = 7
另外,添加两个数字没有分配变量,通过一个空dict
值全局变量
参数。
res = py.eval (“1 + 6”py.dict)
res = 7
执行调用Python对象
要执行一个可调用的Python对象,可以使用函数宏指令
函数。例如,如果实例obj
可调用的Python类,取代Python语法obj (x1,…xn)
以下的MATLAB语句:
函数宏指令(obj,x1,…,xn)
obj(x1,…,xn)
如何MATLAB代表Python运营商
MATLAB支万博1manbetx持以下重载操作符。
Python算子符号 | Python方法 | MATLAB方法 |
---|---|---|
+ (二进制) |
__add__ ,__radd__ |
+ ,+ |
- - - - - - (二进制) |
__sub__ ,__rsub__ |
- ,- - - - - - |
* (二进制) |
__mul__ ,__rmul__ |
mtimes ,* |
/ |
__truediv__ ,__rtruediv__ |
mrdivide ,/ |
= = |
__eq__ |
情商 ,= = |
> |
__gt__ |
gt ,> |
< |
__lt__ |
lt ,< |
! = |
__ne__ |
不 ,~ = |
> = |
__ge__ |
通用电气 ,> = |
< = |
__le__ |
勒 ,< = |
- - - - - - (一元) |
__neg__ |
uminus ,——一个 |
+ (一元) |
__pos__ |
uplus ,+一个 |
下面的Python运营商不支持。万博1manbetx
Python算子符号 | Python方法 |
---|---|
% |
__mod__ ,__rmod__ |
* * |
__pow__ ,__rpow__ |
< < |
__lshift__ ,__rlshift__ |
> > |
__rshift__ ,__rrshift__ |
& |
__and__ ,__rand__ |
^ |
__xor__ ,__rxor__ |
| |
__or__ ,__ror__ |
/ / (二进制) |
__floordiv__ ,__rfloordiv__ |
+ = (一元) |
__iadd__ |
- = (一元) |
__isub__ |
* = (一元) |
__imul__ |
/ = (一元) |
__itruediv__ |
/ / = (一元) |
__ifloordiv__ |
% = (一元) |
__imod__ |
* * = (一元) |
__ipow__ |
< < = (一元) |
__ilshift__ |
> > = (一元) |
__irshift__ |
& = (一元) |
__iand__ |
^ = (一元) |
__ixor__ |
! = (一元) |
__ior__ |
~ (一元) |
__invert__ |