亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識(shí)庫(kù) > 解決python調(diào)用matlab時(shí)的一些常見問題

解決python調(diào)用matlab時(shí)的一些常見問題

熱門標(biāo)簽:工廠智能電話機(jī)器人 平頂山外呼系統(tǒng)免費(fèi) 清遠(yuǎn)360地圖標(biāo)注方法 江蘇客服外呼系統(tǒng)廠家 西藏智能外呼系統(tǒng)五星服務(wù) 在哪里辦理400電話號(hào)碼 千陽自動(dòng)外呼系統(tǒng) 原裝電話機(jī)器人 400電話申請(qǐng)服務(wù)商選什么

為什么要用python調(diào)用matlab?

我自己的有些數(shù)據(jù)結(jié)構(gòu)涉及到hash查找,在python中key是tuple形式,在matlab中支持hash查找的數(shù)據(jù)結(jié)構(gòu)只有containers.Map(),并不能支持cell作為key。

嘗試過把向量轉(zhuǎn)為string,但是num2str和str2mat的效率不高,containers.Map()的查找耗時(shí)也非常的長(zhǎng),所以只好作罷。

后來發(fā)現(xiàn)可以用python通過matlab的API直接調(diào)用matlab的函數(shù)參與運(yùn)算,朋友的經(jīng)驗(yàn)說矩陣運(yùn)算都交給matlab來計(jì)算就很快了。

但是摸索過程中發(fā)現(xiàn)一些問題,在網(wǎng)絡(luò)上基本找不到,自己全靠摸索發(fā)現(xiàn)解決方式,寫在這里,如果能給大家?guī)韼椭蔷秃芎昧恕?/p>

配置python以調(diào)用matlab的API

python環(huán)境

這里以py2.7和Spyder的anaconda為例。

通過mlab庫(kù)

這個(gè)包直接搜索到官網(wǎng)上下載即可。也可以嘗試pip,我已經(jīng)忘了當(dāng)時(shí)怎么裝上的了。

裝好之后,使用示例如下:

from mlab.releases import latest_release as matlab
import os
path = os.getcwd()
mat.path(mat.path(),path) # 添加當(dāng)前腳本所在路徑到matlab的環(huán)境中
......

所有的matlab(包括自定義函數(shù))的可以通過matlab.xxxx()的方式調(diào)用。

mlab包的優(yōu)點(diǎn)

matlab中的所有變量都是矩陣形式的,到python中會(huì)自動(dòng)轉(zhuǎn)為numpy的array形式,非常方便。

mlab包的缺點(diǎn)

這是最大的BUG!那就是自定義函數(shù)在通過mlab在python中調(diào)用之后,就好像編譯只讀了一樣,此后對(duì).m文件的任何修改都不起作用,不管是重新啟動(dòng)python的kernel、重新啟動(dòng)spyder、重新import mlab、刪除.m文件重建同名函數(shù).m文件,都行不通。刪除了.m文件,python報(bào)錯(cuò),除非重新命名一個(gè)新函數(shù)后調(diào)用,那么這個(gè)新函數(shù)同樣面臨無法修改的問題。

除非重啟電腦。

因此我選擇了另一個(gè)方式,也是matlab官網(wǎng)介紹的方式。

通過matlab.engine

matlab官網(wǎng)的鏈接:MATLAB API for Python。

安裝過程:

1、在matlab安裝路徑中,找到”R2016b\extern\engines\python”,每個(gè)人安裝路徑不一樣,找到末尾一致路徑即可

2、這里注意區(qū)分,通過anaconda prompt打開其命令行,依次執(zhí)行:d: –>cd D:\Program Files\MATLAB\R2016b\extern\engines\python,即切換路徑到matlab的python的setup.py下

3、官方還給出了較全的安裝方案,跟著做就好:在非默認(rèn)位置安裝用于 Python 的 MATLAB 引擎 API

4、安裝完成后,python中就可測(cè)試以下內(nèi)容了:

#coding=utf-8
import matlab.engine
from numpy import *
if __name__ == '__main__':
 eng = matlab.engine.start_matlab()
 A = matlab.double([[1,2],[5,6]])
 print(type(A),A.size,A)
 print(eng.eig(A))
 eng.quit()
 pass

matlab.engine包的優(yōu)點(diǎn)

這是matlab官方介紹的方法,不會(huì)出現(xiàn)mlab的那種問題,可以邊寫程序邊調(diào)試沒問題了。

matlab.engine包的缺點(diǎn)

使用的變量中有許多的matlab類,其中一些在spyder的Variable explorer中無法顯示,必須人為打印。

另外就是必須注意python變量類型和matlab變量類型的對(duì)應(yīng)關(guān)系,matlab給出了一張表:Pass Data to MATLAB from Python。

我習(xí)慣上會(huì)把變量以list的方式 [1,2,3] 傳入到matlab的函數(shù)中,這樣matlab里面實(shí)際認(rèn)為是cell,調(diào)試中遇到了很多次,實(shí)際上如果只傳數(shù)值到函數(shù)中,需要在python中將變量設(shè)置為 matlab.double([1,2,3]) 傳入才正常。

實(shí)用建議

matlab.double類型的變量,可以通過numpy.asarray方式轉(zhuǎn)為array類型的變量,方便在python中處理。

matlab中的函數(shù)返回到python中的值默認(rèn)為1個(gè),需要在函數(shù)中增加一個(gè)參數(shù)nargout=n,如果n與返回的個(gè)數(shù)不一致,python會(huì)報(bào)錯(cuò)。

總結(jié)

官方介紹的matlab.engine更好用。

matlab負(fù)責(zé)處理矩陣計(jì)算,python用以解決hash查找的數(shù)據(jù)結(jié)構(gòu)。

目前還在開發(fā)初期階段,并不知道數(shù)據(jù)在python和matlab之間的通信效率高不高。

第一次寫總結(jié),主要是為了給自己總結(jié)用,避免以后發(fā)生同樣的錯(cuò)誤。考慮到網(wǎng)絡(luò)上相關(guān)問題的中文介紹非常少,能找到的都是抄過來抄過去的基礎(chǔ)配置問題,我這里分享出來,以期能夠幫助到其他朋友。

補(bǔ)充:python調(diào)用matlab問題解決小建議

軟件及python位數(shù)要一致

cmd進(jìn)行build和install時(shí)需要管理員權(quán)限運(yùn)行

多個(gè)版本的情況下,需要使用python、python2、python3進(jìn)行python2 setpy.py build這樣

函數(shù)的參數(shù)一般需要matlab.double轉(zhuǎn)換或者參數(shù)賦值時(shí)直接改為double型

import matlab.engine
eng = matlab.engine.start_matlab()

需要保證你的函數(shù)或腳本就在當(dāng)前的工作路徑下,也就是說要把m文件放到python程序中去

matlab.double([44100])
matlab.double([[1.0,1.4142135623730951,1.7320508075688772,2.0,2.23606797749979]])
signal = eng.hanshu(matlab.double([44100]), matlab.double([3000]), matlab.double([5]))

默認(rèn)情況下,API認(rèn)為接收函數(shù)返回結(jié)果的參數(shù)有1個(gè)。

這會(huì)導(dǎo)致沒有返回值的函數(shù)在被調(diào)用時(shí)報(bào)錯(cuò):“Too many output arguments”或是多個(gè)返回值的情況下只返回并得到第一個(gè)返回值

我們可以人為指定輸出參數(shù)為0個(gè)來避免這樣的錯(cuò)誤。

eng.hanshu(canshu, nargout=2)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • Matlab求解數(shù)組中的最大值及它所在的具體位置
  • 如何用Matlab和Python讀取Netcdf文件
  • python matlab庫(kù)簡(jiǎn)單用法講解
  • windows下python 3.9 Numpy scipy和matlabplot的安裝教程詳解
  • 如何基于matlab相機(jī)標(biāo)定導(dǎo)出xml文件
  • MATLAB 如何求取離散點(diǎn)的曲率最大值

標(biāo)簽:天水 隨州 錦州 日照 股票 白城 西安 安慶

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《解決python調(diào)用matlab時(shí)的一些常見問題》,本文關(guān)鍵詞  解決,python,調(diào)用,matlab,時(shí),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《解決python調(diào)用matlab時(shí)的一些常見問題》相關(guān)的同類信息!
  • 本頁收集關(guān)于解決python調(diào)用matlab時(shí)的一些常見問題的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    亚洲wwwwww| 国产一区精品| 尤物视频网站在线| 美女免费毛片| 91麻豆国产| 亚洲第一页色| 日本在线不卡免费视频一区| 一本高清在线| 台湾毛片| 国产成a人片在线观看视频| 久久久久久久久综合影视网| 青草国产在线观看| 精品久久久久久中文字幕一区| 国产精品免费久久| 九九九国产| 亚洲第一色在线| 99久久精品国产高清一区二区| 国产一区二区精品久久91| 欧美电影免费看大全| 青青久久网| 青青久久精品| 国产成人精品综合在线| 免费国产在线观看不卡| 国产精品自拍在线观看| 高清一级做a爱过程不卡视频| 欧美激情在线精品video| 国产一区二区精品尤物| 久久国产精品只做精品| 亚洲天堂免费观看| 欧美另类videosbestsex高清 | 天天做日日干| | 香蕉视频一级| 精品久久久久久影院免费| 精品国产三级a∨在线观看| 欧美日本二区| 国产亚洲免费观看| 精品久久久久久中文字幕一区| 国产a视频| 国产不卡在线看| 色综合久久天天综合绕观看 | 久久精品道一区二区三区| 91麻豆tv| 精品国产三级a∨在线观看| 国产福利免费视频| 可以免费在线看黄的网站| 天天做日日爱| 免费一级片在线观看| 九九九国产| 国产一区二区精品久久91| 高清一级片| 91麻豆精品国产自产在线| 日韩专区亚洲综合久久| 韩国三级香港三级日本三级| 国产a视频| 亚洲精品中文字幕久久久久久| 91麻豆国产| 国产伦精品一区二区三区在线观看| 欧美激情伊人| 日韩av东京社区男人的天堂| 国产91素人搭讪系列天堂| 99热精品在线| 欧美另类videosbestsex久久| 国产一区精品| 精品视频一区二区| 久久精品店| 欧美激情一区二区三区在线播放| 成人免费观看的视频黄页| 九九久久国产精品| 国产韩国精品一区二区三区| 精品视频免费在线| 久久精品道一区二区三区| 精品久久久久久影院免费| 久久国产一区二区| 日韩欧美一二三区| 久久久成人网| 天堂网中文字幕| 精品久久久久久免费影院| 99久久精品费精品国产一区二区| 天天色成人网| 国产网站在线| 午夜在线亚洲男人午在线| 99色播| 久久久成人网| 精品久久久久久中文字幕一区| 成人高清视频免费观看| 国产91素人搭讪系列天堂| 国产伦精品一区二区三区无广告 | 可以免费看污视频的网站| 黄色福利| 亚洲女人国产香蕉久久精品| 亚洲wwwwww| 二级特黄绝大片免费视频大片| 人人干人人插| 欧美日本二区| 欧美激情一区二区三区中文字幕| 国产不卡高清在线观看视频 | 深夜做爰性大片中文| 国产亚洲精品aaa大片| 九九干| 欧美激情一区二区三区在线播放| 国产伦久视频免费观看视频| 国产不卡在线看| 免费国产在线观看不卡| 日韩一级黄色片| 久久99中文字幕久久| 久久国产精品自线拍免费| 999精品在线| 亚洲wwwwww| 在线观看成人网| 国产原创中文字幕| 你懂的日韩| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 亚洲wwwwww| 国产不卡高清| 91麻豆爱豆果冻天美星空| 亚洲精品中文字幕久久久久久| 91麻豆高清国产在线播放| 亚洲精品中文一区不卡| 精品视频在线观看视频免费视频| 91麻豆爱豆果冻天美星空| 日本在线www| 精品毛片视频| 99久久精品国产麻豆| 九九免费精品视频| 青青青草影院| 成人高清视频免费观看| 韩国三级视频网站| 久久精品免视看国产明星| 免费国产在线视频| 国产综合91天堂亚洲国产| 国产伦理精品| 国产一区二区精品久久91| | 国产不卡福利| 成人a级高清视频在线观看| 人人干人人插| 久久国产一区二区| 日本免费乱理伦片在线观看2018| 久久精品免视看国产成人2021| 国产不卡在线观看| 精品在线观看国产| 免费的黄视频| 国产韩国精品一区二区三区| 91麻豆国产福利精品| 亚洲wwwwww| 亚洲精品永久一区| 欧美一级视频免费| 欧美激情一区二区三区视频| 精品久久久久久中文字幕2017| 韩国毛片| 中文字幕97| 国产麻豆精品hdvideoss| 欧美a级大片| 99色视频| 超级乱淫伦动漫| 在线观看成人网| 国产欧美精品| 国产一区二区精品久久91| 国产91精品一区二区| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 韩国三级香港三级日本三级| 欧美另类videosbestsex高清| 日韩在线观看免费| 国产亚洲免费观看| 亚欧成人乱码一区二区| 国产成+人+综合+亚洲不卡| 日韩在线观看视频免费| 国产91精品一区二区| 久久99中文字幕| 国产一区免费在线观看| 国产网站免费| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 精品国产一区二区三区精东影业 | 色综合久久手机在线| 可以免费看毛片的网站| 精品国产一区二区三区精东影业 | 久久精品人人做人人爽97| 国产成人女人在线视频观看| 午夜精品国产自在现线拍| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 欧美国产日韩在线| 欧美a免费| 久久久成人影院| 精品国产一区二区三区国产馆 | 国产韩国精品一区二区三区| 日本免费乱人伦在线观看| 成人a级高清视频在线观看| 国产一区二区精品| 日韩av成人| 欧美大片毛片aaa免费看| 99久久精品费精品国产一区二区| 成人a级高清视频在线观看| 成人高清视频免费观看| 91麻豆国产福利精品| 免费国产在线观看| 国产欧美精品| 免费国产一级特黄aa大片在线| 欧美日本免费| 久久久久久久久综合影视网|