0

我想将球面函数绘制为曲面或等高线图,以及最佳个体的位置和适应度值,这些最佳个体的位置和适应度值由与其叠加的高斯分布生成的数据的球面函数进行评估。每一代的情节都会发生变化,所以我得到了一部电影。另外,在另一个图上,我想绘制与从高斯分布生成的整个种群叠加的球体函数的轮廓,其中保留的拟合个体以红色着色。这代代相传应该再拍一部电影。

这基本上是分布估计算法(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中的电影的意思。关于如何做到这一点的任何想法?

4

1 回答 1

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

于 2013-05-30T08:46:51.253 回答