在matlab

时间:2017-02-25 05:06:58

标签: matlab matlab-figure matlab-guide movieclip

我在问题的以下问这个问题

question and answer

运行答案代码后,您可以按照图表序列查看电影。有没有办法将剧情序列保存为电影?

任何答案都非常感谢。

1 个答案:

答案 0 :(得分:1)

您可以在以下步骤中使用VideoWriter对象创建绘图视频:

1)创建并打开视频对象(同时指定视频名称)

 vidObj = VideoWriter('SIN_X_COS_X.avi');

2)在绘图循环中,使用getframe函数调用plot之后获取当前帧

currFrame = getframe;

3)在视频文件中写下curent帧

writeVideo(vidObj,currFrame);

4)在绘图循环结束时关闭视频对象

接近(vidObj);

关于您所指的答案的代码,您只需在步骤说明中提到的位置添加上述语句。

在下文中,您可以找到所提议方法的可能实现。

% Generate some data
t=0:.01:2*pi;
sin_x=sin(t);
cos_x=cos(t);
% Open a figure and crate the axes
figure
axes;
%
% STEP 1:
%
% Create and open the video object
vidObj = VideoWriter('SIN_X_COS_X.avi');
open(vidObj);
%
% Loop over the data to create the video
for i=1:length(t)
   % Plot the data
   h(1)=plot(t(i),sin_x(i),'o','markerfacecolor','r','markersize',5);
   hold on
   plot(t(1:i),sin_x(1:i),'r')
   plot(t(1:i),cos_x(1:i),'b')
   h(2)=plot(t(i),cos_x(i),'o','markerfacecolor','b','markersize',5);
   set(gca,'xlim',[0 2*pi],'ylim',[-1.3 1.3])
   %
   % STEP 2
   %
   % Get the current frame
   currFrame = getframe;
   %
   % STEP 3
   %
   % Write the current frame
   writeVideo(vidObj,currFrame);
   %
   delete(h)
end
%
% STEP 4
%
% Close (and save) the video object
close(vidObj);

希望这有帮助,

Qapla'