• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python调用matlab函数( 使用matlab官方api,解决多维numpy矩阵输入问题) ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1. 安装

首先,需要安装MATLAB引擎。Windows cmd打开,cd到:E:\MATLAB\R2016b\extern\engines\python

输入(linux同理):

python setup.py install

2.确保编辑器为本地环境,试验 import matlab.engine 是否可用

3.matlab中写方程

安装完成后,MATLAB写一个简单的函数

function x=myLS(A,B)
x = A\B;
end

随后,打开 Python, 运行如下命令

import matlab.engine
eng = matlab.engine.start_matlab()
y = eng.myLS(matlab.double([[1.],[2.]]),matlab.double([[3.],[4.]]))
print y

 

4.但此时意识到一个问题:多维np矩阵传递无法转化为matlab.double

报错 ValueError: initializer must be a rectangular nested sequence

 

matlab官方论坛建议:

python里面 put numpy.ndarry into a list:

data_list = data.tolist()

或者

data_list= matlab.double(data_list.tolist())

MATLAB 里面:

a = [data_list{:}]; 
x = cell2mat(a);
y = double(reshape(x,32,32));

或者:

data_list = double(reshape(data_list,length(data_list),length(data_list)));

 

5. 成功导入,建议统一路径。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
MATLAB_3(2D绘图)发布时间:2022-07-18
下一篇:
matlab中输入x. 与x的区别发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap