www说
以下是在(核心)MATLAB中创建电影的一些不同方法。电影2AVI(已弃用,请改用VIDEOWRITER)%# figurefigure, set(gcf, 'Color','white')Z = peaks; surf(Z); axis tightset(gca, 'nextplot','replacechildren', 'Visible','off');%# preallocatenFrames = 20;mov(1:nFrames) = struct('cdata',[], 'colormap',[]);%# create moviefor k=1:nFrames surf(sin(2*pi*k/20)*Z, Z) mov(k) = getframe(gca);endclose(gcf)%# save as AVI file, and open it using system video playermovie2avi(mov, 'myPeaks1.avi', 'compression','None', 'fps',10);winopen('myPeaks1.avi')AVIFILE(已弃用,请改用VIDEOWRITER)%# figurefigure, set(gcf, 'Color','white')Z = peaks; surf(Z); axis tightset(gca, 'nextplot','replacechildren', 'Visible','off');%# create AVI objectnFrames = 20;aviobj = avifile('myPeaks2.avi', 'fps',10);%# create moviefor k=1:nFrames surf(sin(2*pi*k/20)*Z, Z) aviobj = addframe(aviobj, getframe(gca));endclose(gcf)%# save as AVI file, and open it using system video playeraviobj = close(aviobj);winopen('myPeaks2.avi')视频制作人%# figurefigure, set(gcf, 'Color','white')Z = peaks; surf(Z); axis tightset(gca, 'nextplot','replacechildren', 'Visible','off');%# create AVI objectnFrames = 20;vidObj = VideoWriter('myPeaks3.avi');vidObj.Quality = 100;vidObj.FrameRate = 10;open(vidObj);%# create moviefor k=1:nFrames surf(sin(2*pi*k/20)*Z, Z) writeVideo(vidObj, getframe(gca));endclose(gcf)%# save as AVI file, and open it using system video playerclose(vidObj);winopen('myPeaks3.avi')写入(从技术上讲不是电影,而是GIF动画图片)%# figurefigure, set(gcf, 'Color','white')Z = peaks; surf(Z); axis tightset(gca, 'nextplot','replacechildren', 'Visible','off');%# preallocatenFrames = 20;f = getframe(gca);[f,map] = rgb2ind(f.cdata, 256, 'nodither');mov = repmat(f, [1 1 1 nFrames]);%# create moviefor k=1:nFrames surf(sin(2*pi*k/20)*Z, Z) f = getframe(gca); mov(:,:,1,k) = rgb2ind(f.cdata, map, 'nodither');endclose(gcf)%# create GIF and openimwrite(mov, map, 'myPeaks4.gif', 'DelayTime',0, 'LoopCount',inf)winopen('myPeaks4.gif')