Monday, July 19, 2010

總是mex而不是m

給未來的裕翔

關於處理mex無法執行的問題

最後我決定逃避^^

在xxx.mexglx所在資料夾裡新建一個資料夾

把xxx.mexglx移過去

結果matlab顯示找不到

可是同名的m file明明也在當下的資料夾

重開matlab後

又發生mex無法執行的訊息, 而不是找不到

馬上把資料夾移到matlab路徑之外的地方, 像是家目錄

matlab又發生找不到的訊息

重開matlab後

產生新錯誤訊息了!可以確定找到同名的m file了

我個人結論:

關於matlab執行mex和m file的順序

我不知道怎麼改

不過預設是mex優先於m file

也許是MCALab的MCAPath的關係(或是maltab特性)

就是, 即使我在MCALab產生新資料夾

在重開matlab後也會被新增到path變數

而matlab執行function的順序似乎是先以mex找所有path

找不到再以m找所有path, 這可以解釋為什麼總是找到mex而非m file

把mex移到家目錄後, 開啟matlab執行function

會顯示找不到, 可是, 此時再把mex移回原來在matlab的位置後

依舊找不到

關於這點, 我覺得是因為在matlab開啟後

對所有在它path裡的function有做一個類似snapshot的東西

一開始沒有, 那就是沒有, 即使之後添加也當沒有

一開始有, 要用到就到所在位置執行, 突然找不到就秀錯誤訊息

以上

高興歸高興

已經確定就算成功執行m檔

還是有新的錯誤息……

No comments:

Post a Comment