while using fmincon solver in optimtool.......i got problem...in the window i got a message as
Optimization running.
Undefined function or method 'obj.m' for input arguments of type 'double'.
please suggest me what to do?

 Akzeptierte Antwort

Sargondjani
Sargondjani am 8 Jun. 2012

0 Stimmen

although this does not matter much, you should add an 'end'
how do you call obj.m with fmincon? and where did you store obj.m??? if you call obj(x0) in the line before your fmincon, does it work then?

6 Kommentare

kintali narendra
kintali narendra am 8 Jun. 2012
sir....i just forget to copy end,this time i am using optimtool window to optimize....in the objective function slot i have given called the function by typing"@obj.m"....i stored the file in the same place where other programs were there......i didn't get your lost question sir,sorry
Sargondjani
Sargondjani am 8 Jun. 2012
about the last question: i m sorry, i forgot you used optimtool. i never used that.
however, i searched a bit and the error you get seems to occur only when the function is not defined, ie. when it is stored in another directory for example (or maybe if there are multiple files with the same name)
kintali narendra
kintali narendra am 8 Jun. 2012
dear sir,i checked the whole folder there is no other file named as obj....are there any other things which i need to check that makes my function undefined...please do inform me ..
Sargondjani
Sargondjani am 9 Jun. 2012
im pretty sure it has to do something with matlab not being able to call the function... it's hard to say for outsiders why exactly this happens. did you try using a program to call fmincon?? you could do this, just to test if obj.m works... then you could write "obj(x0)" in the line before you call fmincon to see if it works
Walter Roberson
Walter Roberson am 9 Jun. 2012
Do not use @obj.m -- use @obj
kintali narendra
kintali narendra am 9 Jun. 2012
thanku sir it worked...thanku so much

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Sargondjani
Sargondjani am 8 Jun. 2012

0 Stimmen

apparently you somewhere call a function "obj.m" with an 'double' input and this is not allowed
we can't help much more if you dont post the line where the error occurred and maybe a summary of the code inside obj.m

2 Kommentare

kintali narendra
kintali narendra am 8 Jun. 2012
sir this is the obj.m program
function f = obj(x)
pm=pi/3;
w=0.008;
wt=10;
ws=0.001;
ka=2;
ku=4;
ta=420;
tu=460;
Lu=60;
La=40;
s=(-(x(2)*(w^(-x(4)))*sin((pi/2)*x(4)))+(x(3)*(w^(x(5)))*sin((pi/2)*x(5))));
r=x(1)+((x(2)*(w^(-x(4)))*cos((pi/2)*x(4)))+(x(3)*(w^(x(5)))*cos((pi/2)*x(5))));
f = 20*log10((ku/sqrt((ta*w)^2+1))*sqrt(r^2+s^2));
sir please do tell me if i have made a mistake.....
kintali narendra
kintali narendra am 8 Jun. 2012
the above mentioned is my program....

Melden Sie sich an, um zu kommentieren.

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by