遗传算法目标函数的问题
我想用遗传算法工具箱选择最优的x取值,有八个x,目标函数如下% a1--WBC a2--RBC a3--切口等级 a4--SAS评分 a5--出血量
% a6--抗菌药种数 a7--药物选用合理性 a8--剂量合理性
% r--rightw--wrongct--test classcr--real class
function y=ga_disease(x)
cr=
a1=
a2=
a3=
a4=
a5=
a6=
a7=
a8=
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。
请问如何解决这个问题?请各位大侠帮忙,谢谢! 不懂遗传算法
help if下, 应为if cr(i)==1
还有请注意下, 求助完整格式:出错代码和出错提示 呵呵,我试试用这个if格式,另外
谢谢提醒!出错代码是:
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行,请各位指教!谢谢! 哇!!太神了!可以运行了,哈哈!
补充提问一下,if cr(i)==1 其中的“==”不是表示恒等的意思么?那样不会导致cr的取值每次不变么?
谢谢! 逻辑判断使用==, 设定变数值使用=:@)
please "doc eq" in cmd window
页:
[1]