㈠ python調用Matlab函數或m腳本文件
在嘗試使用Python調用Matlab文件的過程中,經常遇到找不到對應的函數或文件的問題。在進行操作時,按照官方教程進行,卻總是提示未定義與 'double' 類型的輸入參數相對應的函數 'triarea',盡管在Python中調用Matlab自帶函數並無問題。
在排查過程中,猜測是由於MATLAB engine在搜索目錄中找不到被調用的m文件或函數。因此,需要控制engine進入被調用的m文件目錄。以確保Python文件能夠成功調用Matlab文件。
整個Python代碼如下:
運行後,結果如下:
----------------------------------------------------------------------------------------------
為了提供更直觀的回答,以下環境信息已被簡化:
操作系統:Win10
Matlab版本:2018a
Python環境:Anaconda下的 python 3.6
使用編輯器:Spyder
----------------------------------------------------------------------------------------------
參考:
官方教程:ww2.mathworks.cn/help/matlab/matlab-engine-for-python.html
網路資源:關於在Python中調用Matlab的相關討論和解答。
㈡ (詳解)python調用另一個.py文件中的類和函數或直接運行另一個.py文件
Python中調用另一個.py文件中的類和函數或直接運行文件,有多種方法,但推薦的做法包括:在同一文件夾內,通過`import`語句直接調用;在不同文件夾間,推薦創建`__init__.py`文件,並以相對或絕對路徑導入;運行.py文件時,確保正確路徑和許可權。以下是具體步驟的詳細說明:
1. 同一文件夾下的調用:
- 調用函數:在B.py文件中,使用`import A`然後`A.add()`即可。
- 調用類:同理,`import A`後,通過`A.addClass().method()`調用類和方法。
2. 在不同文件夾中,如A.py位於"C:\AmyPython\Test1":
- 通過`import`導入:在B.py中使用`import A.b`,前提是在A文件夾下創建了`__init__.py`。
- 主程序在子文件夾A中調用B.py:通過設置工作目錄或指定絕對路徑。
3. 運行.py文件:
- 同一目錄下:直接運行文件名,如`python B.py`。
- 不同目錄下:確保擁有執行許可權,正確方式如`python /Users//Desktop/.py`,注意路徑和許可權問題。
總的來說,推薦的做法是將主程序放在根目錄下,以保持更好的復用性和代碼清晰度。但在子文件夾內有相互調用的情況下,適當設置路徑或更改工作目錄也是可行的。務必遵守版權協議,如需引用原文,請附上鏈接。