找回密码
 注册
Simdroid-非首页
查看: 115|回复: 5

请教遗传算法目标函数中的问题

[复制链接]
发表于 2009-10-15 11:31:06 | 显示全部楼层 |阅读模式 来自 广东广州
我想用遗传算法工具箱选择最优的x取值,有八个x,目标函数如下
% a1--WBC a2--RBC a3--切口等级 a4--SAS评分 a5--出血量
% a6--抗菌药种数 a7--药物选用合理性 a8--剂量合理性
% r--right  w--wrong  ct--test class  cr--real class
function y=ga_disease(x)
cr=[1 0 0 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1]
a1=[1 2 2 2 2 3 2 2 2 2 2 2 2 3 2 2 2 2 1 3]
a2=[2 2 2 2 2 2 2 2 3 2 2 2 2 1 2 1 1 2 2 2]
a3=[2 2 2 4 2 4 4 4 1 1 2 1 3 3 2 2 2 2 1 4]
a4=[2 2 2 2 1 3 2 1 2 2 2 1 2 2 2 2 2 3 1 3]
a5=[2 1 2 1 1 1 1 1 1 2 2 1 1 1 2 2 2 2 1 3]
a6=[3 2 2 5 2 2 5 2 3 3 3 1 2 1 3 3 5 1 1 4]
a7=[0 1 0 1 1 1 0 1 0 0 1 1 1 1 0 1 0 1 1 0]
a8=[1 1 1 1 1 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0]
r=0
w=0
for i=1:20
    q=x(9)+a1(i)*x(1)+a2(i)*x(2)+a3(i)*x(3)+a4(i)*x(4)+a5(i)*x(5)+a6(i)*x(6)+a7(i)*x(7)+a8(i)*x(8)
    p=e^q/(1+e^q)
    if p>0.5
        ct(i)=1
        if cr(i)=1   %程序运行到这一行总显示出错
            r=r+1
        else w=w+1
        end
    else
        ct(i)=0
        if cr(i)=1
            w=w+1
        else r=r+1
        end
    end
end
    y=w/(r+w)      
如上面蓝色字体显示,程序运行到那一行总显示出错,但是我想把相应第i位的cr值拿来参考,也就是说我要的结果是:如果ct(测试到的分类)是1,并且cr(实际分类)也是1的话,那么就使r(正确分类个数)增加1。
请问如何解决这个问题?请各位大侠帮忙,谢谢!
发表于 2009-10-15 11:55:35 | 显示全部楼层 来自 浙江杭州
Simdroid开发平台
显示什么错误呀?错误信息是什么?最关键的你没说呀
回复 不支持

使用道具 举报

 楼主| 发表于 2009-10-16 10:12:44 | 显示全部楼层 来自 广东广州
显示的错误是这样的:
Error: File: C:\Program Files\MATLAB71\work\ga_disease.m Line: 21 Column: 17
The expression to the left of the equals sign is not a valid target for an assignment.
标记的那行就是21,请指教!谢谢~
回复 不支持

使用道具 举报

发表于 2009-10-16 10:26:25 | 显示全部楼层 来自 陕西西安
if cr(i)==1

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2009-10-16 11:31:51 | 显示全部楼层 来自 广东广州
本帖最后由 messenger 于 2009-10-16 12:26 编辑

高手!谢谢!我还想问一下“==”是表示恒等吗?这样会不会导致cr的每次取值一样啊?
回复 不支持

使用道具 举报

发表于 2009-10-16 12:26:35 | 显示全部楼层 来自 浙江杭州
你这Matlab基础太弱了吧。“==”在数学上表示恒等,在Matlab中是关系运算符。找一本Matlab基础书,看一看逻辑运算相关部份。


高手!谢谢!我还想问一下“==”是表示恒等吗?这样会不会导致cr的每次取值一样啊?
amanda-mat 发表于 2009-10-16 11:31
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-7 05:25 , Processed in 0.049889 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表