matlab table中的文字转string_Matlab调用Python
Matlab具有强大的数据处理能力,提供了大量工具箱,满足各类数值计算需求,且自成体系。而Python则更加开放、自由,基于提供的基本语法,大家可以自由创造轮子,发布后就可以直接pip安装使用。Matlab偏向数值计算,而Python覆盖面则更加广泛,资源更多、更新更快。所以借助Python增强Matlab的能力,好比Matlab插上Python的翅膀,如虎添翼。环境检查使用pyversion检查
Matlab具有强大的数据处理能力,提供了大量工具箱,满足各类数值计算需求,且自成体系。而Python则更加开放、自由,基于提供的基本语法,大家可以自由创造轮子,发布后就可以直接pip安装使用。Matlab偏向数值计算,而Python覆盖面则更加广泛,资源更多、更新更快。所以借助Python增强Matlab的能力,好比Matlab插上Python的翅膀,如虎添翼。
环境检查
使用pyversion检查Matlab能否调用Python:
>>
如果列出了Python信息,如版本、路径等,表示能正常检测到Python。其中isloaded表示是否已加载Python,如果执行了Python语句或调用了Python模块,isloaded就变为1:
>>
如果Matlab没有找到Python,则返回为空,这主要是由于Python路径未添加到环境变量所致
>>
解决办法:将Python安装目录添加到环境变量,或者直接指定Python可执行文件的路径
>>
简单调用
最简单的调用方式是直接执行Python语句
>>
函数调用
除此之外,还可以编写自己的Python函数,如
# myfun.py
将Matlab切换到myfun.py所在的目录,调用Python函数
>>
注意:如果修改了myfun.py,Matlab不会立即使用新的代码,需要重载Python模块
% 重载Python模块
执行上面语句后,就可以调用修改过的Python代码了。
类调用
上面是调用Python函数,还可以调用Python类,如:
class
Matlab中执行
mycalss
结果
count = 1
count = 2
count = 3
count = 4
count = 5
Matlab向Python传递参数
单值传递:在py.myfun.add(1, 2)中,1和2在Matlab中默认是double型,传入Python后,Python默认将其转为Python的float型。类型转换如下表
数组传递:如果传入Matlab数组,Python默认接收为array.array类型。如Matlab传入数组[1, 2],Python接收为array.array('d', [1.0, 2.0])。更多数组转换如下表
如果习惯使用numpy,可以使用np.array(arg_py)将array.array转为numpy数组。
Matlab接收Python返回值
单值转换:如果Python返回1.2(默认float),Matlab无需转换,直接接收为double型的1.2
默认转换的只有以上几种,其他类型需要自己手动转换。如Python中的str,传回Matlab后,如果不做转换,很难操作:
res
故可以调用string、char转换为Matlab字符串:string(res)或char(res)。其他类型的转换方式如下表
数组传递:可以使用array.array向Matlab返回数组,如
def
在Matlab中
>>
numpy数组不方便在Matlab中使用,所以可以先在Python中转为array.array,再传递给Matlab
a
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)