[已答复] 离散函数的多目标优化

[复制链接]
macmatlab 发表于 2017-1-5 20:12:35
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 条回复


jingzhaos 发表于 2017-1-5 21:39:11
最最后一个end前加上一句f=[f1 f2 f3]试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表