Re: [討論] 如何在m檔在執行時使用INPUT改變函數檔?
※ 引述《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
推
11/18 16:50, , 1F
11/18 16:50, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章