matlab转换为python的工具(matlab代码转换为python)
编写了一个MATLAB脚本,想用python打包成exe
matlab文件如何封装成exe文件
不论是Java还是c++,甚至是Python,都能编译出脱离环境可(安装)运行的exe或apk文件,那么matlab能不能封装成exe文件,从而在别人没有装matlab的终端上也能运行呢?其实这个工具是有的。但是想说在前面的是,要运行m文件转成的exe,亦需要在机子安装一个依赖包文件。所以,想要在别人机子上运行程序,必须将exe文件连通依赖包安装工具一起拷给别人,而这个工具大到500多M,并不是那么小巧。这一步是必须的,我们也不能苛求太多,毕竟matlab本身就是一个科学计算软件,而不是软件开发工具。
安装并选择编译器。
在matlab命令行输入mbuild -setup,(注意空格),选择一个编译器,如果没有,可以选择matlab自带的LCC编译器,也可以马上下一个VC6.0安装一下,再运行命令,就有了。一般选择c编译器。
调用编译器完成m文件到exe文件的转换
命令行窗口输入mcc -m filename(这里的filename是文件名),完成m文件到exe文件的转化。
这个过程可能会报“Test checkout of feature ‘Compiler’ failed”的错误,这是因为你破解的matlab不彻底,解决的方法是:
按操作替换三个文件即可
无依赖环境exe文件的打开
D:\MATLAB\R2014a\toolbox\compiler\deploy\win64目录下找到应用程序MCRInstaller,连同exe文件发给别人。接收者双击安装MCR便可打开m转成的exe。
不同的人,不同的机子,不同的matlab遇到的问题肯定是不一样的,这里无法一一解释,若有遇到其他问题,可以留言。
MCR链接库提供了一个matlab的运行环境,这个是需要手动安装的,当然,也可以这样————
将MCRInstaller.exe拷贝到你文件所在文件夹里,用打包程序来打包,生成安装文件,设定在解包过程中自动执行MCRInstaller.exe,同时将可执行文件的图标放在桌面。
matlab中怎么调用python,python计算结果再返回matlab?
matlab:
[status,?cmdout]?=?system('python?xxx.py?1?2')
python:
#?-*-?coding:?utf-8?-*-
import?sys
if?__name__=="__main__":
????????arg1?=?sys.argv[1]
????????arg2?=?sys.argv[2]
????????ret?=?float(arg1)+float(arg2)
????????print?ret
因为system的参数和cmdout都是字符串,所以要做些字符串操作。
如何将Python代码转换成matlab代码
兹举一简单例子。假定Python的起始目录为“D:\Matlab\work\”,而Matlab程序位于"D:\Matlab\bin\win32\matlab.exe"。在matlab的工作目录work(即,Python起始目录)下有一程序analysis.m,该程序为一数据分析程序,并且需要读取某一文件中的数据,文件名需要指定。那么利用Python调用此分析功能可以做如下工作:(1)将analysis.m改造为function,方法是在该文件头增加function语句
function
analysis(filename)
其中filename
为待处理数据的文件名,不包含路径。同时,将analysis.m文件中涉及该文件名的地方也进行相应的修改,此不赘述。(2)在Python
IDE或脚本中执行以下语句import
oscmd="D:\\Matlab\\bin\\win32\\matlab.exe
-r
"+"analysis('data.txt')"os.system(cmd)即可实现对数据的分析调用。关于matlab的其他启动选项,可以参见matlab命令说明,其中可能用到的是"
-nodesktop",该选项可以后台启动matlab而不显示。
matlab的double类型在python中需要怎样转换
使用double命令
比如:
a=int8(124);
a2=double(a);
whos
该段代码先创建了一个uint8的变量a
再用double命令将a变为double变量并赋值给了a2
通过whos显示类型:
Name Size Bytes Class Attributes
a 1x1 1 int8
a2 1x1 8 double
matlab代码转为python
minTheta=3
theta=[1,3,5,2]
theta=[x?if?x=minTheta?else?minTheta?for?x?in?theta]
theta
[1,?3,?3,?2]