最近接觸了幾個LabVIEW通過MATLAB Script調用.m腳本文件的案例,調試過程中遇到了很多的問題,現在對這些問題的解決辦法做個總結,也備忘一下。
路徑設置問題在MATLAB環境下運行的好好的.m文件,在LabVIEW中死活運行不起來,一個最經常遇到的問題就是路徑設置問題,路徑設置問題一般又分好幾種情況:
在MATLAB中,雙擊打開m文件後,自然就把當前文檔目錄作為了工作目錄,通過pwd函數就可獲得當前工作目錄路徑。
pwd函數獲取當前文件夾路徑
但是在LabVIEW中通過MATLAB Script調用時千萬要注意,它返回的不是調用VI或者腳本文件所在的當前文件夾,而是MATLAB的安裝路徑,可通過MATLAB Cammand Window中看出,如下圖所示。
通過LabVIEW調用時,pwd函數返回的是MATLAB安裝路徑
因此,如果在腳本文件中有使用相對路徑,或者有用到了pwd函數來獲取當前工作文件夾路徑,就要注意一定要進行修改了,一般可通過如下步驟進行修改:
1)通過MATLAB Script中添加輸入端子,并将數據類型設置為路徑,再通過LabVIEW的路徑控件将LabVIEW當前工作目錄傳遞給MATLAB Script;
2)通過addpath函數将傳遞進來的文件夾路徑添加至當前MATLAB會話的頂層;
3)通過fullfile函數建立以當前工作目錄為基礎的完整文件路徑。
路徑設置示例
addpath函數幫助文檔
fullfile函數幫助信息
函數聲明問題在MATLAB的m文件的主文件中是可以聲明其它函數的,并且可以直接運行沒有任何問題。
在m文件主文件中聲明函數
但是如果把相同的腳本文件内容通過LabVIEW的MATLAB Script運行的話,就會報出1050錯誤了,意思大概就是說不允許在MATLAB Script中進行函數定義,需要在代碼文件(另外的m文件)中創建函數。
解決辦法自然就是将函數定義部分内容遷移至m文件中即可。
MATLAB Script中不能直接進行函數定義
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!