首頁 > 軟體

怎麼呼叫matlab不同工具包中同名函數

2019-12-25 05:19:22

我們經常會遇見matlab中不同工具包中可能含有相同的函數,那麼則呢麼在需要時呼叫不同工具包中的函數呢?下面通過一個範例進行介紹。


1

我們在一個測試路徑下建立兩個子資料夾「工具包1」和「工具包2」分別表示兩個工具包,我們將在這兩個檔案中新建兩個函數名相同,功能不同的函數。


2

然後開啟matlab,新建一個函數檔案,輸入以下程式碼,實現兩個數相加

function c=fun_test(a,b)

c=a+b;

end


3

然後儲存到 工具包1 資料夾下,



4

同樣的,在新建一個函數檔案,輸入以下程式碼實現兩個函數相乘

function c=fun_test(a,b)

c=a*b;

end

然後儲存到 工具包2 資料夾下,



5

再把「工具包1」和「工具包2」路徑新增到matlab path路徑中具體如下:

matlab file選單再點set path彈出setpath對話方塊,點選add folder分別把路徑加進去。在點選save,然後close退出對話方塊。


6

現在在command window中輸入:

funtest(1,2)

funtest(3,4)

執行結果如圖。由上面設定路徑是 工具包2 在 工具包1 上面,所以我們直接呼叫時,實際上呼叫的工具包2中的fun_test函數,進行乘法計算。


7

其實我們可以在matlab命令視窗中用which函數來判斷當前的fun_test函數呼叫哪個,輸入下面的程式碼:

which fun_test


8

那麼我們現在想嗲用工具包1的fun_test函數怎麼辦呢,我們使用addpath函數臨時將 工具包1 的路徑加入,如圖。可以看到,現在呼叫函數是進行的加法操作了,也就是呼叫的 工具包1 的函數。


9

再輸入which fun_test


10

如果要再次呼叫工具包2的fun_test怎麼辦呢?我們採用rmpath函數將工具包1 的路徑臨時剔除,如圖。可以看到,現在呼叫fun_test函數執行的是乘法操作,也就是 工具包2 中的funtest函數。


11

再輸入which fun_test



IT145.com E-mail:sddin#qq.com