Re: [問題] 函數有錯該如何修改(函數的建立和求min)已回收
※ 引述《WC (Without Charge)》之銘言:
: ※ 引述《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
: 就解決了
我照著你說的方式改了...但是程式還是會跑出錯誤
Error using ==> objfun
Too many input arguments. (這是我變數太多..式子太複雜嗎..
可是我沒辦法再化簡了...有什麼方法改進呢)
Error in ==> fminunc at 184
f = feval(funfcn{3},x,varargin{:});
我應該再怎麼修改呢..謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.23.203.217
→
02/12 12:29, , 1F
02/12 12:29, 1F
推
02/12 12:36, , 2F
02/12 12:36, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 4 篇):
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章