"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 中查找有关 Problem-Based Optimization Setup 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by