Re: [問題] 函數有錯該如何修改(函數的建立和求min)已回收
※ 引述《qwer098 (^^)》之銘言:
: 這是m-file裡: 變數有三個x(1),x(2),x(3)
: function[c,ceq] =objfun(x)
: y=rand(1,100);
: i=1:98;
: f(i)=2*log(1+x(3)*(y(i+2)*y(i+1)-x(1)*y(i+1)^2-x(1)*y(i+1)*y(i))+x(4)*(y(i+2)*y(i)-x(1)*y(i+1)*y(i)-x(2)*y(i)^2));
: f=sum(f);
: Error in ==> fminunc at 184
: f = feval(funfcn{3},x,varargin{:}); 那這個是matlab裡跑的..為什麼會出現錯誤?
要嘛就用 for loop, 要用矩陣運算的話, 乘除請記得加 .
如 y./x or y.*x
你可以在指令列自己試試看
因為你用了 i (1x98 double) 所以你的 f(i) 就也變成了矩陣 (1x98)
簡單的說, 你的問題只要把 i 改成 for i=1:98
就解決了
--
。 ╔╯═╗ ╦╦╦ ╬╬╯ ╰╦
╬ ╬╬╗ ╦╰╬═ ╠╬═ ══ ╔══╗ ╔╬╬╗ ╬
╩ ║ ╬>║< * ╬═ ╔╗╔╗* ∕╚﹨﹨ ╠═ ╠═ ║ ╔╬╗
╚╯ ╩ ╝ ═╩═ ╚╝║╯ ╠═╗ ╚═╗╚══╝ ╠╬║
╳ ╬╬║ ═╬ ╬
國家研究院》Academy》EarthAstro》Ecophilia環境板 ╯ 。 ╯ ╩╯ m3m3ρ
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 142.244.32.84
討論串 (同標題文章)
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章