1. 程式人生 > >Matlab優化工具箱(optimization toolbox)使用時出現的一個問題

Matlab優化工具箱(optimization toolbox)使用時出現的一個問題

    上次在筆記本上用Matlab2010b的優化工具箱學習遺傳演算法求解器的操作時,出現了一個非常鬱悶的問題:

    按照書上的步驟,我設定適應函式,變數個數,其他引數預設的情況下,點選開始按鈕,提示框出現‘Optimization running.Too many output arguments.’的資訊(截圖如下),然而我在學校地臺式機上Matlab7.0和同學的筆記本上的Matlab2009a時卻沒有問題。

    

    正確的截圖

    

    Google大面積搜尋無果之後,我嘗試重灌Matlab,以及更換Matlab的版本,折騰了一番。偶然發現了一個狀況:剛開始裝好之後,執行正常。由於解除安裝重灌之後,打算加入原來的工作路徑,於是在set path裡面加入了Matlab2010資料夾,但是之後執行遺傳演算法工具箱發生開始的錯誤。

    至此,真相基本大白。我想起曾經下載過一個謝菲爾德遺傳演算法工具箱gaot然後包含在工作目錄了,解除安裝後出現的問題就是重新加入了該目錄。究其根源,我斷定是函式名導致呼叫混淆。通過檢視toolbox目錄下的m檔案,我發現其中有ga.m檔案,然而gaot裡面也有ga.m,兩個函式檔案不一樣,引數也不同。matlab在搜尋的時候,可能將兩個檔案呼叫混淆,然後出錯。

    因為目前還未在網路上搜索到相關問題的解答,本人不敢斷定自己的想法是否正確,但是驗證沒有問題。希望大家批評指正。