欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 解決python調用matlab時的一些常見問題

解決python調用matlab時的一些常見問題

熱門標簽:工廠智能電話機器人 平頂山外呼系統免費 清遠360地圖標注方法 江蘇客服外呼系統廠家 西藏智能外呼系統五星服務 在哪里辦理400電話號碼 千陽自動外呼系統 原裝電話機器人 400電話申請服務商選什么

為什么要用python調用matlab?

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

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

后來發現可以用python通過matlab的API直接調用matlab的函數參與運算,朋友的經驗說矩陣運算都交給matlab來計算就很快了。

但是摸索過程中發現一些問題,在網絡上基本找不到,自己全靠摸索發現解決方式,寫在這里,如果能給大家帶來幫助,那就很好了。

配置python以調用matlab的API

python環境

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

通過mlab庫

這個包直接搜索到官網上下載即可。也可以嘗試pip,我已經忘了當時怎么裝上的了。

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

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

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

mlab包的優點

matlab中的所有變量都是矩陣形式的,到python中會自動轉為numpy的array形式,非常方便。

mlab包的缺點

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

除非重啟電腦。

因此我選擇了另一個方式,也是matlab官網介紹的方式。

通過matlab.engine

matlab官網的鏈接:MATLAB API for Python。

安裝過程:

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

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

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

4、安裝完成后,python中就可測試以下內容了:

#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包的優點

這是matlab官方介紹的方法,不會出現mlab的那種問題,可以邊寫程序邊調試沒問題了。

matlab.engine包的缺點

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

另外就是必須注意python變量類型和matlab變量類型的對應關系,matlab給出了一張表:Pass Data to MATLAB from Python。

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

實用建議

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

matlab中的函數返回到python中的值默認為1個,需要在函數中增加一個參數nargout=n,如果n與返回的個數不一致,python會報錯。

總結

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

matlab負責處理矩陣計算,python用以解決hash查找的數據結構。

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

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

補充:python調用matlab問題解決小建議

軟件及python位數要一致

cmd進行build和install時需要管理員權限運行

多個版本的情況下,需要使用python、python2、python3進行python2 setpy.py build這樣

函數的參數一般需要matlab.double轉換或者參數賦值時直接改為double型

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

需要保證你的函數或腳本就在當前的工作路徑下,也就是說要把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]))

默認情況下,API認為接收函數返回結果的參數有1個。

這會導致沒有返回值的函數在被調用時報錯:“Too many output arguments”或是多個返回值的情況下只返回并得到第一個返回值

我們可以人為指定輸出參數為0個來避免這樣的錯誤。

eng.hanshu(canshu, nargout=2)

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

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

標簽:天水 隨州 錦州 日照 股票 白城 西安 安慶

巨人網絡通訊聲明:本文標題《解決python調用matlab時的一些常見問題》,本文關鍵詞  解決,python,調用,matlab,時,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《解決python調用matlab時的一些常見問題》相關的同類信息!
  • 本頁收集關于解決python調用matlab時的一些常見問題的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    中文字幕免费在线播放| 日韩精品专区在线影院重磅| 国产午夜精品一区二区三区嫩草 | 日韩av在线发布| 高清中文字幕mv的电影| 欧美天堂一区二区三区| 亚洲精品日日夜夜| 亚洲成人av免费观看| 色综合色狠狠综合色| 国产精品久久久久永久免费观看| 国产黑丝在线一区二区三区| 婷婷综合在线视频| 国产亚洲综合av| 国产精品一二三| 日韩在线观看免| 国产精品国产成人国产三级| 成人午夜视频在线观看| 可以直接看的黄色网址| 最新不卡av在线| 永久看看免费大片| 欧美久久免费观看| 日本中文字幕一区二区视频| 18禁裸乳无遮挡啪啪无码免费| 日韩精品一区二区三区视频在线观看 | 国产真实乱在线更新| 国产精品白丝在线| 欧美体内she精高潮| 欧美剧在线免费观看网站| 五月婷婷色综合| 国产一二三四五区| 国产日产欧美一区| 99久久免费视频.com| 欧美日韩五月天| 青青青伊人色综合久久| 亚洲女优在线观看| 亚洲国产精品成人综合| 99这里只有精品| 欧美卡1卡2卡| 久久精品99国产精品日本| 国产黄色片在线| 亚洲天天做日日做天天谢日日欢 | 亚洲午夜电影网| 成人精品在线观看视频| 久久精品欧美一区二区三区不卡| 岛国av在线一区| 欧美另类一区二区三区| 蜜桃精品在线观看| 欧美做爰爽爽爽爽爽爽| 一区二区三区精品视频在线| 成人网站免费观看| 国产精品系列在线| 免费啪视频在线观看| 精品999在线播放| proumb性欧美在线观看| 91精品婷婷国产综合久久性色| 精品亚洲成a人| 色综合久久久久久久| 日韩精品一级二级 | 一区二区成人在线视频 | 中国特级黄色片| 久久精品欧美日韩| 在线中文字日产幕| 国产午夜精品在线观看| 亚洲欧洲国产视频| 久久久www成人免费无遮挡大片| 91亚洲精品久久久蜜桃网站 | 六月婷婷七月丁香| 亚洲欧美日韩中文播放| 熟女少妇一区二区三区| 亚洲九九爱视频| 国产精品美女高潮无套| 一区二区三区在线免费视频| 在线观看福利片| 一区二区三区91| 男人天堂资源网| 三级久久三级久久久| 中文字幕手机在线观看| 日本大胆欧美人术艺术动态| 日本黄色片免费观看| 美女一区二区久久| 欧美日韩一区二区三区免费看| 国产成人在线免费观看| 欧美一区二区二区| 91丨九色丨国产丨porny| 久久免费偷拍视频| 人妻换人妻a片爽麻豆| 国产精品麻豆99久久久久久| 成人影视免费观看| 亚洲午夜精品一区二区三区他趣| 少妇视频一区二区| 蜜乳av一区二区| 欧美日韩卡一卡二| av在线不卡观看免费观看| 久久久91精品国产一区二区精品| 国产在线不卡av| 一区二区三区在线观看网站| 国产91在线播放九色| 毛片av中文字幕一区二区| 欧美剧情片在线观看| 91丝袜美腿高跟国产极品老师| 国产亚洲一区二区三区| 9.1成人看片免费版| 亚洲午夜电影网| 在线看国产一区二区| 粉嫩绯色av一区二区在线观看| 精品福利一二区| 久久久久亚洲av无码专区桃色| 亚洲午夜日本在线观看| 91国偷自产一区二区三区成为亚洲经典 | 亚洲一级二级三级在线免费观看| 视频这里只有精品| 国产精品66部| 久久女同互慰一区二区三区| 亚洲av片不卡无码久久| 视频一区国产视频| 欧美乱妇一区二区三区不卡视频| 99国产精品一区| 日韩毛片高清在线播放| www.5588.com毛片| 丁香婷婷综合激情五月色| 国产欧美va欧美不卡在线| 国产传媒在线看| 国产一区二区h| 国产日韩精品一区二区三区在线| 久久久视频6r| 黄色小说综合网站| 国产日韩欧美精品一区| 长河落日免费高清观看| 久久国产精品无码网站| 日韩精品一区二区三区三区免费 | 欧美一卡二卡在线观看| 人妻av一区二区| 天天综合色天天综合色h| 91精品午夜视频| 国产夫妻性爱视频| 美女被吸乳得到大胸91| 欧美大胆人体bbbb| 人妻aⅴ无码一区二区三区| 国产真实精品久久二三区| 国产视频一区二区三区在线观看| 美女av免费看| 成人精品高清在线| 亚洲欧美成aⅴ人在线观看| 欧洲色大大久久| 男女性杂交内射妇女bbwxz| 日本午夜精品一区二区三区电影| 日韩女优av电影| 成年人看的免费视频| 国产成a人无v码亚洲福利| 亚洲欧美怡红院| 欧美日韩国产精品成人| 久久人人爽人人人人片| 久久国产乱子精品免费女| 日本一区二区三级电影在线观看 | 日韩高清不卡一区| wwwwww.欧美系列| 男人晚上看的视频| 99精品欧美一区二区蜜桃免费 | 美女三级黄色片| 91免费小视频| 日本亚洲三级在线| 国产欧美精品一区aⅴ影院| 一本久道久久综合中文字幕 | 欧美乱熟臀69xxxxxx| 三上悠亚影音先锋| 成人性色生活片| 亚洲国产日韩av| 2欧美一区二区三区在线观看视频| 九九这里只有精品视频| 91蜜桃网址入口| 免费看欧美女人艹b| 国产香蕉久久精品综合网| 91精品1区2区| 久久国产精品影院| 成人精品免费网站| 视频在线观看一区| 国产精品三级电影| 欧美高清hd18日本| av在线免费播放网址| 韩国一区二区三区四区| 久久99国产精品尤物| 亚洲欧美国产77777| 欧美电视剧在线观看完整版| 亚洲一二三在线观看| 亚洲视频 中文字幕| 国产伦精品一区二区三区视频青涩 | 色综合99久久久无码国产精品| 99久久婷婷国产精品综合| 日本大胆欧美人术艺术动态| 国产精品剧情在线亚洲| 91精品国产麻豆| 国产性xxxx| 亚洲天堂久久新| 91视频一区二区| 国产另类ts人妖一区二区| 亚洲电影你懂得| 国产精品久久久久久久久免费丝袜| 91精品国产手机| 色婷婷精品大在线视频 | 亚洲av成人精品一区二区三区|