我想将球体函数绘制为曲面或等高线图,以及最佳个体的位置和适应度值,这些值由通过叠加的高斯分布生成的数据的球函数来评估。情节会在每一代都有所改变,所以我会看电影。此外,在另一个图中,我想绘制球体函数的轮廓与由高斯分布生成的整个总体叠加,其中保留的拟合个体用红色着色。这代代相传应该是另一部电影。
这基本上是分布算法(EDA)估计的实现。有谁知道怎么做?
修改 的
K= 4
for l = 1 : K
contour(X,Y,ph);
hold on
plot(bestId, 'rx');
end
上面的代码应该叠加等高线图和BestId。对于l的每个循环,生成bestId并与等高线图叠加。这一代BestInd应该发生在每一个l。但是在1到4代的bestId中,有一个是最好的,我们应该在四代之后与等高线图叠加。现在我希望这一代是一部从1到4的到达迭代的电影,这样我就可以看到bestId是如何生成的,直到达到最佳(最佳)效果。 这就是我在matlab中的电影所指的意思。关于如何做到这一点的任何想法?
答案 0 :(得分:1)
要创建反映数字变化的影片,我正在使用课程avifile
和功能getframe()
以及addframe()
这是一个例子
aviobj = avifile('example.avi','compression','None');
t = linspace(0,2.5*pi,40);
fact = 10*sin(t);
fig=figure;
[x,y,z] = peaks;
for k=1:length(fact)
h = surf(x,y,fact(k)*z);
axis([-3 3 -3 3 -80 80])
axis off
caxis([-90 90])
F = getframe(fig);
aviobj = addframe(aviobj,F);
end
close(fig);
aviobj = close(aviobj);
您可以在此处找到更多信息
http://www.mathworks.nl/help/matlab/ref/avifile.html
http://www.mathworks.nl/help/matlab/ref/movie.html
http://www.math.canterbury.ac.nz/~c.scarrott/MATLAB_Movies/movies.html
----------------- 在评论讨论后编辑 ---------------- -
pm89
在评论中提出了另一种方式。 VideoWriter类看起来更现代,更新。使用示例可以在下面的页面末尾找到
http://www.mathworks.nl/help/matlab/ref/videowriterclass.html