function fit=fitness(time,room,teacher,class,chrom) for idx=1:length(chrom) f1{idx}=0; [M,N]=size(chrom(idx)); for i=1:M for j=1:N if isempty(chrom{idx}{i,j})==1 f1{idx}=f1{idx}+time(i).weight*chrom{idx}{i,j}.sweight; end end end fit(idx)=0.3*f1; end出错在哪里
时间: 2023-05-27 14:05:52 浏览: 84
GFXMMU配置示例-flink 流式表自定义streamtablesource、retractstreamsink,并使用flink kafkadatastream
这段代码中存在多个语法错误和逻辑错误。
首先,函数名和参数列表应该用括号括起来,即应该写成:function fit=fitness(time,room,teacher,class,chrom)
其次,在第3行中,应该将 f1{idx}=0; 改为 f1(idx)=0; 。因为 f1 是一个数组,而不是一个 cell 数组。
第4行中应该将 [M,N]=size(chrom(idx)); 改为 [M,N]=size(chrom{idx}); 。因为 chrom 是一个 cell 数组,而不是一个普通的数组。
在第6行中,缺少一个加号,应该将 f1{idx}=f1{idx}+time(i).weight*chrom{idx}{i,j}.sweight; 。
在第9行中,应该将 fit(idx)=0.3*f1; 改为 fit(idx)=0.3*f1(idx); 。因为 f1 是一个数组,需要使用下标 idx 来访问其中的元素。
最后,在函数结尾处应该添加一个 end 语句,表示函数定义的结束。
阅读全文