看板 MATLAB 關於我們 聯絡資訊
※ 引述《billy00685 (milano)》之銘言: : %函數檔如下: : function f = myfun3_11_3(x); : w = 0.000188763; : delta_P = 0.3*pp*0.0789; : f = w*x(1)^3*x(2)+(x(2)*delta_P); : ------------------------------------------ : %主程式如下: : clear all : clc : pp = input('輸入人數:'); : x0 = [0.1 1]; : lb = [0.1 1]; : ub = [3 999999]; : options = optimset('LargeScale','off'); : [x,total_cost,flag] = : fmincon(@myfun3_11_3,x0,[],[],[],[],lb,ub,@mycon3_11_3,options) : %副程式當中的pp我要每次執行主程式時都要重新設定所以 : 我想把它放到主程式中使用input指令,但是會發生 : 無法定義函數或變數pp的錯誤 : Undefined function or variable 'pp'. : %我在把"pp = input('輸入人數:');" : 它放到副程式中去跑主程式會發生一直重複教我輸入人數: : 如下: : 輸入人數:30 : 輸入人數:30 : . : . : . : . : 到底該如何把主程式的變數給函數檔用啊? 重點不在input 而是怎麼把值從主程式傳到副程式 副程式多加個輸入把參數丟進去就好 function f = myfun3_11_3(x,pp); w = 0.000188763; delta_P = 0.3*pp*0.0789; f = w*x(1)^3*x(2)+(x(2)*delta_P); 然後主程式呼叫當然也要多加個輸入 clear all clc pp = input('輸入人數:'); x0 = [0.1 1]; lb = [0.1 1]; ub = [3 999999]; options = optimset('LargeScale','off'); [x,total_cost,flag] =fmincon(@(x)... myfun3_11_3(x,pp),x0,[],[],[],[],lb,ub,@mycon3_11_3,options) 因為我沒有@mycon3_11_3 我設成[]測試是ok的 你可以測試看看 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.121.146.175
billy00685:成功解決了0.0 ~原來呼叫的時候還有這種寫法_感謝 11/18 16:50