我是Matlab新編譯器。我有一個簡單的圖形用戶界面,當它按下時,它會調用一個m函數(myfunction.m)。這個函數只是返回一個數字,然後顯示一個消息框。如果我編譯如下:使用加載命令編譯Matlab文件
mcc -m myfile.m
一切工作正常。但是,如果我加入myfunction.m此代碼:
load mydata.mat
編譯的文件無法正常工作,如果我按一下按鈕,然後在消息框不會出現。 我用matlab編譯時應該如何處理加載命令?
我是Matlab新編譯器。我有一個簡單的圖形用戶界面,當它按下時,它會調用一個m函數(myfunction.m)。這個函數只是返回一個數字,然後顯示一個消息框。如果我編譯如下:使用加載命令編譯Matlab文件
mcc -m myfile.m
一切工作正常。但是,如果我加入myfunction.m此代碼:
load mydata.mat
編譯的文件無法正常工作,如果我按一下按鈕,然後在消息框不會出現。 我用matlab編譯時應該如何處理加載命令?
試試這個:
wd = cd % Gets the current directory
load([wd '\filename'])
裏面Matlab的我經常找到與which
路徑:
tmp = which('myfile');
t2 = fileparts(tmp);
data_with_path = fullfile(t2,'mydata.mat');
不知道是否它的工作原理編譯艱難的時候。
你確定在'load'過程中沒有發生異常嗎?例如,因爲你加載的文件不在那裏?嘗試嘗試/抓住它並看看。 – angainor
.mat文件位於.m文件的相同文件夾中,所以這不是問題。 –
這可能是問題所在。當您啓動編譯的應用程序時,其當前工作目錄可能會成爲您的主目錄,而不是.exe文件所在的目錄。因此,坐在.m文件旁邊的.mat文件不會位於Matlab路徑中和'load'不會看到它。無論如何,使用像昂納一樣的try/catch建議並顯示錯誤消息,它會告訴你什麼是錯的。 –