python調用matlab函數(內置 + 自定義) —— 安裝matlab.engine

文章目錄

  • 一、簡介
  • 二、安裝matlab.engine
    • 2.1、基于 CMD 安裝
    • 2.2、基于 MATLAB 安裝(不建議)
  • 三、python調用matlab函數(內置 + 自定義)

一、簡介

matlab.engine(MATLAB Engine API for Python)是 MATLAB 提供的一個 Python 接口,允許你在 Python 環境中與 MATLAB 進行交互。通過 matlab.engine,你可以在 Python 中啟動 MATLAB 引擎,調用 MATLAB 函數,傳遞數據,以及執行 MATLAB 腳本和命令。

主要功能:

  • 啟動 MATLAB 引擎:在 Python 中, 使用 matlab.engine.start_matlab() 啟動 MATLAB 引擎,并通過該引擎執行命令。
  • 調用 MATLAB 函數:在 Python 中,直接調用 MATLAB 的內置函數或自定義函數(.m),例如:result = eng.sqrt(16.0)
  • 數據傳遞:支持在 Python 和 MATLAB 之間傳遞數據,包括數組、矩陣、字符串等。例如:y = eng.my_function(x=[1.0, 2.0, 3.0])
  • 執行 MATLAB 腳本或命令: 可以通過 eng.eval("disp('Hello from MATLAB!')", nargout=0) 來執行 MATLAB 腳本或命令。
  • 關閉 MATLAB 引擎:: 執行完任務后,使用 eng.quit() 關閉 MATLAB 引擎。

優勢:

  • MATLAB 與 Python 的結合:可以將 Python 的優勢與 MATLAB 強大的數學計算、符號計算、數據分析等功能相結合,進行更復雜的分析。
  • 科學計算和模擬:在 MATLAB 中進行數值計算和建模,再將結果傳遞到 Python 中進行可視化和進一步分析。
  • 方便的調試和交互:可以在 Python 環境中實時調試 MATLAB 代碼,快速驗證和測試。
  • 多平臺支持:matlab.engine 支持多種操作系統,包括 Windows、Linux 和 macOS。

二、安裝matlab.engine

2.1、基于 CMD 安裝

在這里插入圖片描述

  • (1)打開 CMD 命令提示符,并指定 Python 環境,用于與 MATLAB 引擎綁定:若需要激活環境,則執行以下代碼:conda activate py39,其中 py39 為指定的虛擬環境名稱。
  • (2)切換到 MATLAB 安裝路徑下的 extern\engines\python 目錄:cd D:\MATLAB2023b\MATLAB\R2023b\extern\engines\python
  • (3)在當前目錄下創建安裝目錄(可選):mkdir dist
    • 通常 setup.py 會自動創建 dist 目錄,若沒有,則需要手動創建以避免錯誤。
    • 備注:可以在查看 MATLAB 安裝目錄時,確認是否存在 dist 目錄而決定。
  • (4)開始安裝
    • 最經典方法(已棄用,但仍可使用):python setup.py install。系統將警告提示:SetuptoolsDeprecationWarning: setup.py install is deprecated.
    • 使用 pip 安裝(最新方法):python -m pip install .。該命令將從當前目錄安裝,而 setup.py 文件通常會在同一目錄下。
    • 如果遇到權限問題,使用 --user 參數安裝到用戶本地目錄,而不是全局安裝:python setup.py install --user

2.2、基于 MATLAB 安裝(不建議)

打開 MATLAB 命令窗口,輸入以下命令來安裝:

cd (fullfile(matlabroot,'extern','engines','python'))
system('python setup.py install')
  • 報錯提示:若返回 9009 ,表明命令未成功運行。
  • 原因分析:由于命令行找不到 python 或者路徑配置有問題。—— 當 system 調用 python 命令時,MATLAB 依賴系統環境變量 PATH 來定位 Python。如果 Python 沒有被正確添加到環境變量中,會導致找不到 python 命令,從而報錯。
  • 解決方法:將 setup.py 替換為 MATLAB 安裝目錄

三、python調用matlab函數(內置 + 自定義)

一文讀懂如何用python調用matlab函數(windows環境)

啟動和關閉 MATLAB 引擎是一個較為耗時的操作,若需要頻繁調用MATLAB函數,可以將啟動 MATLAB 引擎提取到外部函數中,以實現只啟動一次。

import matlab.engineeng = matlab.engine.start_matlab()  # 啟動 MATLAB 引擎
#########################################################################################
print("調用 MATLAB 版本號: ", eng.version())  # 獲取 MATLAB 版本號
print("調用 MATLAB 內置函數: ", eng.sqrt(4.0))
print("調用 MATLAB 腳本文件(.m): ", eng.count(1.0, 2.0))
#########################################################################################
eng.quit()  # 關閉 MATLAB 引擎"""3調用 MATLAB 版本號:  23.2.0.2365128 (R2023b)
調用 MATLAB 內置函數:  2.0
調用 MATLAB 腳本文件(.m):  3.0
"""
  • 若調用腳本文件(自定義函數),則(.m)與(.py)必須在同一個文件夾下。
  • 有趣的現象,MATLAB打印結果也會在 Python 中顯示。
  • 若在非綁定的 Python 環境下運行,則異常提示:ModuleNotFoundError: No module named 'matlab'
function a = count(c, d)% 輸入參數: c 和 d% 輸出參數: aa = c + d;  % 函數執行功能disp(a);    % 顯示輸出結果
end

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/62633.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/62633.shtml
英文地址,請注明出處:http://en.pswp.cn/web/62633.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

pytroch環境安裝-pycharm

環境介紹 安裝pycharm 官網下載即可,我這里已經安裝,就不演示了 安裝anaconda 【官網鏈接】點擊下載 注意這一步選擇just me 這一步全部勾上 打開 anaconda Prompt 輸入conda create -n pytorch python3.8 命令解釋:創建一個叫pytorch&…

Photoshop提示錯誤彈窗dll缺失是什么原因?要怎么解決?

Photoshop提示錯誤彈窗“DLL缺失”:原因分析與解決方案 在創意設計與圖像處理領域,Photoshop無疑是眾多專業人士和愛好者的首選工具。然而,在使用Photoshop的過程中,有時會遇到一些令人頭疼的問題,比如突然彈出的錯誤…

自己總結:selenium高階知識

全篇大概10000字(含代碼),建議閱讀時間30min 一、等待機制 如果有一些內容是通過Ajax加載的內容,那就需要等待內容加載完畢才能進行下一步操作。 為了避免人為操作等待,會遇到的問題, selenium將等待轉換…

上海亞商投顧:創業板指震蕩調整 機器人概念股再度爆發

上海亞商投顧前言:無懼大盤漲跌,解密龍虎榜資金,跟蹤一線游資和機構資金動向,識別短期熱點和強勢個股。 一.市場情緒 滬指昨日沖高回落,深成指、創業板指盤中跌超1%,尾盤跌幅有所收窄。機器人概念股逆勢爆…

(Linux)CentOS7離線安裝MinIO(超詳細)

目錄 前言1. 下載2. 安裝VMware3. 安裝CentOS4. 離線安裝MinIO4.1. ssh工具連接CentOS4.2. 上傳MinIO離線包4.2.1 創建data目錄4.2.2 上傳RPM包到data目錄4.2.3 安裝RPM包4.2.4 創建MinIO數據目錄4.2.5 配置 MinIO 服務4.2.6 啟動 MinIO4.2.7 開放端口 4.2.8 訪問MinIO 創作不易…

【JavaWeb后端學習筆記】Maven項目管理

Maven 1、分模塊設計2、Maven繼承2.1 繼承關系2.2 版本鎖定 3、Maven聚合4、聚合與繼承的關系 1、分模塊設計 如果一個項目中含有大量的功能模塊。可以考慮將這些功能分模塊設計,逐一進行開發。例如將公共類可以定義在一個項目中,將通用工具類也放在一個…

HarmonyOS-高級(四)

文章目錄 應用開發安全應用DFX能力介紹HiLog使用指導HiAppEvent 🏡作者主頁:點擊! 🤖HarmonyOS專欄:點擊! ??創作時間:2024年12月11日11點18分 應用開發安全 應用隱私保護 隱私聲明彈窗的作…

網絡安全法-網絡運行安全

第三章 網絡運行安全 第一節 一般規定 第二十一條 國家實行網絡安全等級保護制度。網絡運營者應當按照網絡安全等級保護制度的要求,履行下列安全保護義務,保障網絡免受干擾、破壞或者未經授權的訪問,防止網絡數據泄露或者被竊取、篡改&…

論文閱讀:Statistical Comparisons of Classifiers over Multiple Data Sets

論文地址:Statistical Comparisons of Classifiers over Multiple Data Sets (acm.org) 前面在機器學習之Friedman檢驗-CSDN博客 中提到了Friedman檢驗,這里將對這個方法的論文進行詳細的閱讀,以了解其原理。 摘要 盡管用于在單個數據集上比…

【Unity技巧】Unity項目中哪些文件不用管理(.gitignore)

Unity的項目編譯后一般都比較大,動轍幾個G。這里面一般我們只需要把Assets, Packages, ProjectSettings這三個文件夾進行源代碼管理就可以,其他文件就可以通過下面的.gitignore來忽略掉。 .gitignore文件的內容如下: # 將此 .gitignore 文件…

練9:進制轉換

歡迎大家訂閱【藍橋杯Python每日一練】 專欄,開啟你的 Python數據結構與算法 學習之旅! 文章目錄 1 進制轉換2 例題分析 1 進制轉換 ①任意制轉為十進制 【示例】 ②十進制轉為任意制 【法一】 【法二】 2 例題分析 題目地址:https:/…

C語言:指針詳解續

一、字符指針變量 我們知道有種指針類型為字符指針(char*)。 #include <stdio.h> int main() {char ch w;char* pch &ch;printf("%c\n", *pch);return 0; } 其實它還有一種使用方式。 #include <stdio.h> int main() {char* pstr "hello…

HarmonyOS-高級(一)

文章目錄 一次開發、多端部署自由流轉 &#x1f3e1;作者主頁&#xff1a;點擊&#xff01; &#x1f916;HarmonyOS專欄&#xff1a;點擊&#xff01; ??創作時間&#xff1a;2024年12月09日12點19分 一次開發、多端部署 布局能力 自適應布局 拉伸能力均分能力占比能力縮放…

[DEBUG] pytorch 加速安裝兼容cuda12.6版本(Torch CUDA is not available )

如何使用鏡像源快速安裝兼容 CUDA 12.6 的 PyTorch 在使用 PyTorch 時&#xff0c;有時會遇到 CUDA 版本不兼容的問題。對于 CUDA 12.6&#xff0c;PyTorch 目前尚未直接支持&#xff0c;但可以通過安裝 cu118 版本來兼容。由于 PyTorch 官網下載速度較慢&#xff0c;我們可以…

云計算IaaS-PaaS-SaaS三種服務模式轉至元數據結尾

在當今數字化時代&#xff0c;云計算已經成為推動企業創新與發展的核心力量。而云計算的模型主要有三種&#xff1a;IAAS、PAAS 和 SAAS&#xff0c;它們各自在云計算的龐大體系中扮演著獨特且關鍵的角色&#xff0c;恰似一座大廈的不同樓層&#xff0c;共同構建起強大而靈活的…

【Excel學習記錄】02-單元格格式設置

1.單元格格式工具美化表格 單元格格式位置 選中單元格&#xff0c;右鍵→設置單元格格式 合并居中 跨越合并 字體類型、大小、顏色、填充底紋、邊框 斜線 軟回車&#xff1a;alt enter 格式刷 2.單元格數字格式 格式不影響數值&#xff0c;只是展示形式 日期本質也是數…

【嵌入式系統】第4章 嵌入式最小系統,供電電路,時鐘電路,復位電路,程序下載電路

關注作者了解更多 我的其他CSDN專欄 過程控制系統 工程測試技術 虛擬儀器技術 可編程控制器 工業現場總線 數字圖像處理 智能控制 傳感器技術 嵌入式系統 復變函數與積分變換 單片機原理 線性代數 大學物理 熱工與工程流體力學 數字信號處理 光電融合集成電路…

期權懂|交易個股期權需要注意哪些風險?

期權小懂每日分享期權知識&#xff0c;幫助期權新手及時有效地掌握即市趨勢與新資訊&#xff01; 交易個股期權需要注意哪些風險&#xff1f; 一、交易個股期權需要注意合約到期風險&#xff1a; 需關注到期日&#xff0c;及時平倉或行權&#xff0c;避免合約作廢。二、交易個…

MVC配置文件配置及位置

配置文件位置 默認位置 WEB-INF目錄下&#xff1a;-servlet.xml 指定位置 在web.xml中配置 DispatcherServlet中的contextConfigLocation屬性可以指定配置文件位置 確保配置文件存在于類路徑&#xff08;Resources&#xff09;下 web.xml <?xml version"1.0" …

可視化邏輯表達式編輯器

優質博文&#xff1a;IT-BLOG-CN 一、QueryBuilder介紹 QueryBuilder 是一個用于創建查詢和過濾器的 UI 組件。 QueryBuilder的特點 1、支持的輸入屬性豐富&#xff0c;常見的 字符串&#xff0c;整數&#xff0c;浮點數&#xff0c;布爾類型&#xff0c;日期類型&#xff0…