欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

matlab調(diào)用python的各種方法舉例子詳解

 更新時間:2023年09月04日 10:23:56   作者:不當菜虛困  
為了發(fā)揮matlab的繪圖優(yōu)勢+原先python寫好的功能組合方式,下面這篇文章主要給大家介紹了關于matlab調(diào)用python的各種方法,需要的朋友可以參考下

前言

在MATLAB中,可以使用 py 函數(shù)來調(diào)用Python模塊和函數(shù)。在此基礎上,我們可以很輕易的調(diào)用python中的各種模塊,方便我們在神經(jīng)網(wǎng)絡上的應用仿真。

以下是使用MATLAB調(diào)用Python模塊的基本步驟:

確保你的系統(tǒng)已經(jīng)正確安裝了Python,并且將Python添加到了系統(tǒng)的環(huán)境變量中。

在MATLAB命令窗口中,使用 pyversion 命令檢查MATLAB當前使用的Python版本。確保它是你希望調(diào)用的Python版本。

使用 py.module_name 語法來引入Python模塊。 module_name 是你要調(diào)用的Python模塊的名稱。

調(diào)用Python模塊中的函數(shù)或方法。使用 . 操作符來訪問模塊中的函數(shù)和方法。

1 調(diào)用自定義python函數(shù)

% 添加函數(shù)模塊路徑, 如果路徑不在則搜索不到
py.sys.path().append('fun/to/path')
mymod = py.importlib.import_module('py_name')  % 不要帶py后綴,不然報錯
a = mymod.print_num(1)
disp(a)

例子

# num.py
def print_num(num):
   return num
% 添加函數(shù)模塊路徑, 如果路徑不在則搜索不到
py.sys.path().append('fun/to/path')
mymod = py.importlib.import_module('num')  % 不要帶py后綴,不然報錯
a = mymod.print_num(1)
disp(pwd)
disp(a)

2 訪問 Python 內(nèi)置模塊

要訪問 Python 庫,請在 Python 名稱前添加 py. 前綴。訪問math模塊:

% 引入Python模塊
% py.math;
% 調(diào)用Python模塊中的函數(shù)
result = py.math.sqrt(4);
disp(result);  % 顯示結(jié)果

調(diào)用list、textwrap:

a = py.list({'This','is a','list'});
disp(a);
b = py.textwrap.wrap('This is a string');
disp(b);

3 從 MATLAB 運行python腳本

3.1 PYRUNFILE(FILE)

PYRUNFILE(FILE) 執(zhí)行 Python 腳本文件 FILE,它可以被提供為標量字符串、cellstr 或 char 數(shù)組。 FILE 必須指定絕對路徑或相對路徑-相對于當前工作目錄,擴展名為“.py”的文件的路徑。如果腳本文件需要任何命令行參數(shù),則可以通過提供它們在要執(zhí)行的文件路徑之后的 FILE 中,由空格字符分隔。

格式

% 返回值的
pyrunfile("fun.py")

例子

# 定義num.py的函數(shù)
def print_num(num=1):
  print("執(zhí)行print_num函數(shù)")
  return num
if __name__ == "__main__":
  b = print_num(3)
  print("hello world!")

matlab中調(diào)用,命令行窗口可以得到print打印出的值:

% a string, cellstr or a char array
% 添加當前python的文件路徑
py.sys.path().append('fun/to/path')
% 調(diào)用這個函數(shù)
pyrunfile("num.py")

3.2 [ OUTVARS ] = PYRUNFILE(FILE, OUTPUTS)

[ OUTVARS ] = PYRUNFILE(FILE, OUTPUTS) 執(zhí)行文件并返回任何變量由 Python 生成到 MATLAB,通過指定 Python 變量的名稱在 OUTPUTS 中并在 OUTVARS 中捕獲返回值。 可以提供輸出作為字符串、cellstr 或 char 數(shù)組。

格式

% 返回值的
out_vulue = pyrunfile("fun.py", "var_nam")

例子

# num.py
def print_num(num=1):
  return num
if __name__ == "__main__":
  b = print_num(3)

matlab中調(diào)用,這里不需要導入這個函數(shù),程序會自動搜索這個函數(shù):

% a string, cellstr or a char array
% 添加當前python的文件路徑
py.sys.path().append('fun/to/path')
% 調(diào)用這個函數(shù)
myListFile = pyrunfile("num.py", "b")

denominator分母,imag虛部,real實部,numerator分子

獲取更多的返回變量

# 已經(jīng)定義的num.py
def print_num(num=1):
  c = 1
  print("執(zhí)行print_num函數(shù)")
  return num
if __name__ == "__main__":
  a =  print_num(2)
  b = print_num(3)
  print("hello world!")

上面代碼中,我們定義了a、b、c三個變量,這是我們都想獲取,則可以通過下面的方法:

[a, b, c] = pyrunfile("num.py", ["a", "b", "c"]);

可以發(fā)現(xiàn),a、b的值都成功獲取了,但是c沒有成功,應為c為在函數(shù)print_num中,為零時變量,獲取不到。

3.3 [ OUTVARS ] = PYRUNFILE(FILE, OUTPUTS, varargin{INPUTS})

[ OUTVARS ] = PYRUNFILE(FILE, OUTPUTS, varargin{INPUTS}) 執(zhí)行文件并返回OUTPUTS, 并將它們分配給 OUTVARS,使用 varargin{INPUTS} 傳遞的 MATLAB 數(shù)據(jù)。 varargin{INPUTS} 可用于將 MATLAB 數(shù)據(jù)傳遞給 Python 表達式,格式:名稱-值對,其中名稱是要分配的 Python 變量的名稱,并且該值是 MATLAB 數(shù)據(jù)或可訪問工作區(qū)中的變量名稱。 varargin{INPUTS}只能用于傳遞可自動轉(zhuǎn)換為python格式的數(shù)據(jù)。

格式一

% 返回值的
out_vulue = pyrunfile("fun.py argv1 argv2 ...argvn", "var_nam")

例子

# num.py
import sys
def print_num(num=1):
  ans = num+1
  return ans
if __name__ == "__main__":
  arg = sys.argv[1]
  print(type(arg))
  b = print_num(int(arg))
  print(b)

調(diào)用

b = pyrunfile("num.py 1", "b");

格式二

% 返回值的
out_vulue = pyrunfile("fun.py", "var_nam", arg1=v1, arg2=v2)

例子

# num.py
def print_num(num=1):
  ans = num+1
  return ans
if __name__ == "__main__":
  num1= x
  num2 = y
  a = print_num(num1)
  b = print_num(num2)
  print(a)
  print(b)

調(diào)用:

[a, b] = pyrunfile("num.py", ["a", "b"], x=1, y=2);

總結(jié)

到此這篇關于matlab調(diào)用python的各種方法的文章就介紹到這了,更多相關matlab調(diào)用python方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python基礎之基本運算符

    python基礎之基本運算符

    這篇文章主要介紹了python基本運算符,實例分析了Python中返回一個返回值與多個返回值的方法,需要的朋友可以參考下
    2021-10-10
  • 解決python訓練模型報錯:BrokenPipeError:?[Errno?32]?Broken?pipe

    解決python訓練模型報錯:BrokenPipeError:?[Errno?32]?Broken?pipe

    這篇文章主要介紹了解決python訓練模型報錯:BrokenPipeError:?[Errno?32]?Broken?pipe問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • 詳解python定時簡單爬取網(wǎng)頁新聞存入數(shù)據(jù)庫并發(fā)送郵件

    詳解python定時簡單爬取網(wǎng)頁新聞存入數(shù)據(jù)庫并發(fā)送郵件

    這篇文章主要介紹了python定時簡單爬取網(wǎng)頁新聞存入數(shù)據(jù)庫并發(fā)送郵件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • Python常用的爬蟲技巧總結(jié)

    Python常用的爬蟲技巧總結(jié)

    本文給大家匯總介紹了Python編寫爬蟲的時候經(jīng)常需要用到的一些技巧,非常的實用,有需要的小伙伴可以參考下
    2016-03-03
  • 解決django 向mysql中寫入中文字符出錯的問題

    解決django 向mysql中寫入中文字符出錯的問題

    這篇文章主要介紹了解決django 向mysql中寫入中文字符出錯的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python使用matplotlib繪制三維圖形示例

    Python使用matplotlib繪制三維圖形示例

    這篇文章主要介紹了Python使用matplotlib繪制三維圖形,結(jié)合實例形式分析了Python基于matplotlib庫繪制三維圖形的相關操作技巧與注意事項,需要的朋友可以參考下
    2018-08-08
  • selenium WebDriverWait類等待機制的實現(xiàn)

    selenium WebDriverWait類等待機制的實現(xiàn)

    這篇文章主要介紹了selenium WebDriverWait類等待機制的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • python django生成遷移文件的實例

    python django生成遷移文件的實例

    今天小編就為大家分享一篇python django生成遷移文件的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • python實現(xiàn)人性化顯示金額數(shù)字實例詳解

    python實現(xiàn)人性化顯示金額數(shù)字實例詳解

    在本篇內(nèi)容里小編給大家整理了關于python實現(xiàn)人性化顯示金額數(shù)字實例內(nèi)容,需要的朋友們可以參考下。
    2020-09-09
  • Anaconda安裝后Spyder閃退解決辦法

    Anaconda安裝后Spyder閃退解決辦法

    作為研究深度學習的一員,經(jīng)常會遇到各種突如其來的bug,最近又碰到了一個關于spyder打開后又閃退的問題,下面這篇文章主要給大家介紹了關于Anaconda安裝后Spyder閃退的解決辦法,需要的朋友可以參考下
    2023-04-04

最新評論