高级的主题
理解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语句之一:
函数宏指令(obj,x1,…, xn)
obj(x1,…, 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__ |