Not enough input arguments
情報
この質問は閉じられています。 編集または回答するには再度開いてください。
古いコメントを表示
My code is:
eq=@eqq;
CF=@(u,t, eq)(eq(u,q44, t, t1)*1000*eq(u,q44, t, t1) + u'*1*u);
J=integral(CF,0,T);
where eqq is handwritten function in separate file:
function eqq1 = eqq(u,q44, t, t1)
tdif = intmax;
ideal = 0;
for i=1:length(t)
if (tdif>abs(t(i)-t1))
tdif = abs(t(i)-t1);
ideal = i;
end
eqq1 = q44(ideal);
end
after running my code, I get error in line
CF=@(u,t, eq)(eq(u,q44, t, t1)*1000*eq(u,q44, t, t1) + u'*1*u);
It says that error is following:
Not enough input arguments.
Error in costfunctionalone>@(u,t,eq)(eq(u,q44,t,t1)*1000*eq(u,q44,t,t1)+u'*1*u)
How to solve that problem?
1 件のコメント
James Tursa
2019 年 5 月 14 日
eq is the name of the built-in element-wise "equals" operator in MATLAB. I would strongly advise you pick a different variable name.
回答 (1 件)
The integral function integrates your function from u=0 to u=T but you never provide values for "t" or "eq" which are the 2nd and 3rd inputs to your function CF.
It will look something like this:
J=integral(@(x)CF(x,t,eq),0,T);
where t and eq are constants you provide as the 2nd and 3rd inputs to CF().
0 件のコメント
この質問は閉じられています。
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!