function f=myfunc(x1,x2) if x1==1&x2==1 f1=41.15,f2=34.14,f3=-2.49 elseif x1==2&x2==1 f1=40.37,f2=37.61,f3=-11.39 elseif x1==3&x2==1 f1=42.21,f2=41.05,f3=-19.79 elseif x1==4&x2==1 f1=44.56,f2=44.12,f3=-26.63 elseif x1==5&x2==1 f1=47.11,f2=46.82,f3=-30.01 elseif x1==6&x2==1 f1=49.61,f2=49.12,f3=-32.80 elseif x1==7&x2==1 f1=52.18,f2=51.09,f3=-33.73 elseif x1==8&x2==1 f1=54.63,f2=52.78,f3=-34.69 elseif x1==9&x2==1 f1=56.91,f2=54.23,f3=-35.91 elseif x1==10&x2==1 f1=58.97,f2=55.32,f3=-34.74 elseif x1==1&x2==2 f1=42.05,f2=34.75,f3=-1.58 elseif x1==2&x2==2 f1=41.54,f2=38.58,f3=-9.68 elseif x1==3&x2==2 f1=43.54,f2=42.39,f3=-16.90 elseif x1==4&x2==2 f1=46.23,f2=45.93,f3=-24.39 elseif x1==5&x2==2 f1=49.25,f2=49.17,f3=-28.34 elseif x1==6&x2==2 f1=52.25,f2=52.05,f3=-31.34 elseif x1==7&x2==2 f1=55.40,f2=54.63,f3=-32.48 elseif x1==8&x2==2 f1=58.44,f2=56.91,f3=-33.45 elseif x1==9&x2==2 f1=61.32,f2=58.92,f3=-34.77 elseif x1==10&x2==2 f1=63.94,f2=60.46,f3=-33.47 elseif x1==1&x2==3 f1=40.60,f2=31.56,f3=-0.40 elseif x1==2&x2==3 f1=37.78,f2=32.55,f3=-7.27 elseif x1==3&x2==3 f1=37.22,f2=33.96,f3=-12.80 elseif x1==4&x2==3 f1=37.47,f2=35.45,f3=-20.20 elseif x1==5&x2==3 f1=38.27,f2=36.92,f3=-25.07 elseif x1==6&x2==3 f1=39.15,f2=38.29,f3=-28.75 elseif x1==7&x2==3 f1=40.31,f2=39.60,f3=-30.05 elseif x1==8&x2==3 f1=41.45,f2=40.79,f3=-31.20 elseif x1==9&x2==3 f1=42.50,f2=41.86,f3=-32.74 elseif x1==10&x2==3 f1=43.72,f2=42.75,f3=-31.22 elseif x1==1&x2==4 f1=42.35,f2=30.94,f3=0 elseif x1==2&x2==4 f1=39.40,f2=30.92,f3=-1.44 elseif x1==3&x2==4 f1=37.86,f2=31.21,f3=-5.12 elseif x1==4&x2==4 f1=36.63,f2=31.57,f3=-8.58 elseif x1==5&x2==4 f1=36.06,f2=32.06,f3=-11.72 elseif x1==6&x2==4 f1=35.73,f2=32.60,f3=-16.26 elseif x1==7&x2==4 f1=36.04,f2=33.27,f3=-18.46 elseif x1==8&x2==4 f1=36.39,f2=33.92,f3=-20.82 elseif x1==9&x2==4 f1=36.64,f2=34.53,f3=-23.57 elseif x1==10&x2==4 f1=37.54,f2=35.16,f3=-21.00 elseif x1==1&x2==5 f1=40.69,f2=31.92,f3=-0.43 elseif x1==2&x2==5 f1=38.02,f2=33.28,f3=-7.44 elseif x1==3&x2==5 f1=37.65,f2=34.99,f3=-13.03 elseif x1==4&x2==5 f1=38.13,f2=36.73,f3=-20.53 elseif x1==5&x2==5 f1=39.18,f2=38.48,f3=-25.31 elseif x1==6&x2==5 f1=40.35,f2=40.18,f3=-28.94 elseif x1==7&x2==5 f1=41.81,f2=41.87,f3=-30.22 elseif x1==8&x2==5 f1=43.26,f2=43.48,f3=-31.35 elseif x1==9&x2==5 f1=44.62,f2=45.01,f3=-32.87 elseif x1==10&x2==5 f1=46.11,f2=46.29,f3=-31.34 elseif x1==1&x2==6 f1=40.40,f2=32.73,f3=-1.65 elseif x1==2&x2==6 f1=38.38,f2=34.97,f3=-9.80 elseif x1==3&x2==6 f1=38.99,f2=37.46,f3=-17.21 elseif x1==4&x2==6 f1=40.39,f2=39.93,f3=-24.58 elseif x1==5&x2==6 f1=42.20,f2=42.34,f3=-28.50 elseif x1==6&x2==6 f1=44.08,f2=44.61,f3=-31.46 elseif x1==7&x2==6 f1=46.17,f2=46.79,f3=-32.59 elseif x1==8&x2==6 f1=48.23,f2=48.82,f3=-33.56 elseif x1==9&x2==6 f1=50.19,f2=50.69,f3=-34.86 elseif x1==10&x2==6 f1=52.10,f2=52.21,f3=-33.56 else f1='x1,x2 wrong',f2='x1,x2 wrong',f3='x1,x2 wrong' end end 以上是我定义的离散函数myfunc 在命令框随便输入myfunc(4,5)是可以出结果的, 但是在优化工具箱中调用函数@myfunc 进行优化的时候,却出现错误 错误提示是Output argument "f" (and maybe others) not assigned during call to "D 不知道是哪里出现问题了 |
1 条回复