2021-05-12 14:32:11
怎麼呼叫matlab不同工具包中同名函數
我們經常會遇見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
相關文章