主要内容

高级的主题

理解PythonMATLAB进口命令

进口声明中没有相同的功能在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变量的xy值。

工作区= 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__

另请参阅

|

相关的话题

外部网站