主要内容

高级的主题

理解Python而且MATLAB进口命令

进口语句在MATLAB中没有相同的功能®在Python中®

负载Python模块MATLAB

Python代码使用进口语句来加载并使代码可访问。当你输入时,MATLAB会自动加载Pythonpy。在模块名和函数名前面。这段代码展示了如何调用函数包装在Python模块中textwrap

Python代码 MATLAB代码
import textwrap pS1 = textwrap。wrap('这是一个字符串')
S1 = py. textwap .wrap('这是一个字符串');

谨慎

在MATLAB中,不要输入:

进口pythonmodule

从不叫:

进口py。*

如果这样做,MATLAB将调用Python函数,而不是同名的MATLAB函数。这可能会导致意想不到的行为。如果你输入这个进口命令,那么你必须调用MATLAB命令:

明确进口

缩短类名或函数名

Python从进口…语句允许您在不使用完全限定名的情况下引用模块。在MATLAB中,使用进口函数。这段代码展示了如何引用函数包装在Python模块中textwrap.自包装不是MATLAB函数,您可以使用进口函数。调用此命令后,不需要键入包(py)和模组(textwrap)的名字。

Python代码 MATLAB代码
import textwrap pS1 = textwrap。wrap('这是一个字符串')from textwrap import wrap pS2 = wrap('another string')
S1 = py. textwap .wrap('这是一个字符串');进口py.textwrap.wrapS2 = wrap(另一个字符串的);
进口mymod为毫米
Mm = py.importlib.import_module('mymod”);使用mm作为别名来访问中的功能mymod

帮助Python功能

关于Python功能的完整描述,请参考外部资源,特别是,https://www.python.org.Python文档有不同的版本,所以一定要参考与您的系统版本相对应的版本。MATLAB文档中的许多示例都引用了Python标准库中的函数。

要在第三方或用户定义的Python模块中使用函数,请参阅供应商产品文档,了解如何安装模块及其功能的详细信息。

MATLABpy.help命令显示在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”
模块__builtin__中内置函数eval的帮助:eval(…)eval(source[, globals[, locals]]) -> value在globals和locals上下文中计算源代码。源可以是表示Python表达式的字符串,也可以是compile()返回的代码对象。全局变量必须是字典,局部变量可以是任何映射,默认为当前全局变量和局部变量。如果只给出全局变量,则默认为局部变量。

要计算表达式,请传递一个Pythondict的值。全局变量名称空间参数。

创建Pythondict变量。x而且y值。

工作空间= py.dict(pyargs(“x”, 1“y”6))
工作区=没有属性的Python字典。{'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对象,请使用函数宏指令函数。例如,if instanceobj的Python类是可调用的,替换Python语法obj (x1,…xn)用下列MATLAB语句之一:

函数宏指令(objx1,…, xn
objx1,…, xn

如何MATLAB代表Python运营商

MATLAB支金宝app持以下重载操作符。

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操作符。金宝app

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__

另请参阅

|

相关的话题

外部网站