123
返回列表 发新帖

[话题讨论] iLoveMATLAB论坛最常见的问题Top200

  [复制链接]

新手

25 麦片

财富积分


050


0

主题

7

帖子

0

最佳答案
发表于 2019-6-8 21:43:16 | 显示全部楼层
非常有用的资源,楼主费心了

新手

5 麦片

财富积分


050


0

主题

1

帖子

0

最佳答案
发表于 2019-11-30 21:24:03 | 显示全部楼层
无法解析名称 vision.OpticalFlow。请问这种问题怎么解决?

新手

5 麦片

财富积分


050


2

主题

4

帖子

0

最佳答案
发表于 2019-12-8 21:48:40 | 显示全部楼层
求助各位大佬们,我是新手一枚,最近需要写一个简单的遗传算法小程序,参阅了各种教程后,写的代码运行时为什么总是出现“未定义变量或函数”的错误啊,并且这些函数应该是matlab自带的啊,不应该是路径的问题啊?以下是全程序,总是第20行随机产生染色体那出现“未定义函数或变量'Code'的错误”,求解决!
%%遗传算法参数
maxgen = 30; %进化代数
sizepop = 100; %种群规模
pcross = 0.6; %交叉概率
pmutation = 0.01; %变异概率
lenchrom = [1 1 1 1 1]; %染色体长度(变量字串长度)
bound = [0 0.9*pi;0 0.9*pi;0 0.9*pi;0 0.9*pi;0 0.9*pi];  %变量范围

%%个体初始化
individuals = struct('fitness',zeros(1,sizepop),'chrom',[]); %种群结构体
avgfitness = []; %种群平均适应度
bestfitness = []; %种群最佳适应度
bestchrom = []; %适应度最好的染色体
%初始化种群
for i = 1:sizepop
    individuals.chrom(i, = Code(lenchrom,bound); %随机产生个体
    x = individuals.chrom(i,;
    individuals.fitness(i) = fun(x); %个体适应度
end

%找最好的染色体
[bestfitness,bestindex] = min(individuals.fitness);
bestchrom = individuals.chrom(bestindex,; %最好的染色体
avgfitness = sum(individuals.fitness)/sizepop; %染色体的平均适应度
%记录每一代进化中最好的适应度和平均适应度
trace = [avgfitness bestfitness];

%%进化开始
for i = 1:maxgen
    %选择操作
    individuals = Select(individuals,sizepop);
    avgfitness = sum(individuals.fitness)/sizepop;
    %交叉操作
    individuals.chrom = Cross(pcross,lenchrom,individuals.chrom,sizepop,bound);
    %变异操作
    individuals.chrom = Mutation(pmutation,lenchrom,individuals.chrom,sizepop,[i maxgen],bound);
    %计算适应度
    for j =1:sizepop
        x = individuals.chrom(j,;
        individuals.fitness(j) = fun(x);
    end
    %找到最小和最大适应度的染色体及它们在种群中的位置
    [newbestfitness,newbestindex] = min(individuals.fitness);
    [worestfitness,worestindex] = max(individuals.fitness);
    %代替上一次进化中最好的染色体
    if bestfitness > newbestfitness
        bestfitness = newbestfitness;
        bestchrom = individuals.chrom(newbestindex,;
    end
    individuals.chrom(worestindex, = bestchrom;
    individuals.fitness(worestindex) = fitness;
   
    avgfitness = sum(individuals.fitness)/sizepop;
   
    trace = [trace;avgfitness bestfitness]; %记录每一代进化中最好的适应度和平均适应度
   
end
%进化结束
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

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