"Error not enough input arguments "

1 次查看(过去 30 天)
This is my code and I am getting error" not enough input parameters" in line 4 .Can anyone please rectify the problem ?
function[jval, gradient]= costfuntion(theta)
jval= (theta(1)-5)^2 + ...
(theta(2)-5)^2;
gradient= zeros(2,1);
gradient(1)= 2*(theta(1)-5);
gradient(2)= 2*(theta(2)-5);
options = optimset('GradObj','on', 'MaxIte', 100);
initialTheta= zeros(2,1);
[optTheta,funcval, exitFlag]= fminunc(@costfunction, initialTheta, options);
  2 个评论
Aditya Verma
Aditya Verma 2020-6-13
Hi! May I know how you're trying to call this function? According to my understanding, you're trying to operate on a matrix with two elements. A possible call to this function could be:
costfuntion([10 20])
Walter Roberson
Walter Roberson 2020-6-14
The lines start from options need to be either before the function or else in a different file.

请先登录,再进行评论。

采纳的回答

KSSV
KSSV 2020-6-13
I think you are running your code by using either run button or F5 button. This is a function, you cannot run like that. You need to save it in a directory on the name costfunction.m. And call it in command window.
theta = rand(1,2) ; % some random values for demo
[jval, gradient]= costfunction(theta) ;
I have checked the code, it is running fine.
  1 个评论
ananya mittal
ananya mittal 2020-6-14
I am trying this on MATLAB 2017a. It is running an infinite loop of error. And shows the error
"THROWFMINUNCGRADOBJANDLARGESCALEWARNING throws a warning for the
% following case. For R2017a and R2017b only, we are still supporting
% "optimset" users who specify the trust-region algorithm in fminunc via
% the GradObj and LargeScale options for fminunc. From 18a onwards,
% LargeScale will be ignored for fminunc and users will have to use
% Algorithm."

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Solver Outputs and Iterative Display 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by