Re: [問題] 函數有錯該如何修改(函數的建立和求min)已回收

看板MATLAB作者 (Without Charge)時間16年前 (2009/02/12 07:57), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/4 (看更多)
※ 引述《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 就解決了 --  ╔╯═╗  ╦╦╦ ╬╬╯ ╰╦ ╬ ╬╬╗ ╦╰╬═  ╠╬═ ══   ╔══╗ ╔╬╬╗ ╬ ╩ ║ ╬>║< ╬═ ╔╗╔╗ ∕╚﹨﹨ ╠═ ╠═ ║ ╔╬╗ ╚╯ ╩ ╝  ╩═ ╚╝║╯   ╠═╗ ╚═╗╚══╝ ╠╬║    ╬╬║ ═╬ ╬ 國家研究院AcademyEarthAstroEcophilia環境板 ╯ 。 ╯ ╩╯ m3m3ρ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 142.244.32.84
文章代碼(AID): #19asNHsU (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #19asNHsU (MATLAB)