使用matlab产生二维动态曲线视频文件具体举例

使用matlab产生二维动态曲线视频文件举例

在进行有些函数变化过程时候,需要用到直观的动态显示,本博文将举例说明利用Matlab编程进行二维动态曲线的生成视频文件。

一、问题描述

利用matlab编程实现 y 1 = s i n ( t ) , y 2 = c o s ( t ) , y 3 = s i n ( t ) ∗ c o s ( t ) y1=sin(t),y2=cos(t),y3=sin(t)*cos(t) y1=sin(t),y2=cos(t),y3=sin(t)cos(t),其中 t ∈ [ 0 , 2 π ] t \in [0,2\pi ] t[0,2π],生成 y 1 , y 2 , y 3 y1,y2,y3 y1,y2,y3随时间 t t t变化的动态曲线视频文件。

二、编程

具体程序和步骤见如下程序:

clc
clear all
close all
%% 1. 产生数据
t=0:.01:2*pi;
y1=sin(t)+1;
y2=cos(t)+2;
y3=sin(t).*cos(t)+3;
%% 2.打开图,并创建一个坐标系,并绘制数据,生成视频

figure
axes;
%
% 2.1 步骤1: 创建并打开视频对象
my_video = VideoWriter('moiveplot0.avi');
open(my_video);
%
% 2.2 循环数据,并生成视频
for i=1:length(t)
   % (1)绘制数据
   h(1)=plot(t(i),y1(i),'o','markerfacecolor','b','markersize',15);
   h(2)=plot(t(i),y2(i),'o','markerfacecolor','r','markersize',10);
   h(3)=plot(t(i),y3(i),'o','markerfacecolor','g','markersize',5);
   hold on
   plot(t(1:i),y1(1:i),'b','lineWidth',4)
   plot(t(1:i),y2(1:i),'r','lineWidth',2.5)
   plot(t(1:i),y3(1:i),'g','lineWidth',1.5)

   set(gca,'xlim',[0 2*pi],'ylim',[-2 5])
   
   %  (2)获取当前帧
    currFrame = getframe;

   %  (3)将当前帧写入视频对象中
     writeVideo(my_video,currFrame);
   %   (4) 删除当前绘制的帧
   delete(h)
end
%
%% 3. 关闭和保存视频对象
close(my_video);

三、 运行结果

当编程完毕,点击matlab的运行按键,就可以进行动态曲线视频的生成,其中中间图像如图1所示。所生成的视频文件,如本博文附件。

使用matlab产生二维动态曲线视频文件具体举例_第1张图片
图1 动态二维曲线生成(中间过程)

四、注意事项

特别注意
当重新运行时候,要避免刚才生成的视频文件,不要和新的文件名重名;否则,运行到后面,matlab会报错,而无法保存所生成的视频!

你可能感兴趣的:(matlab,开发语言)