matlab生成AVI文件的问题

来源:百度知道 编辑:UC知道 时间:2024/06/17 15:24:22
这是我写的一段代码,却无法生成AVI文件,我用movie2avi命令也失败了。请问是什么原因?最近在研究用matlab生成AVI格式,希望有高人指点下。
clc;
clear;
fig=figure;
aviobj=avifile('example.avi');
n=100;
x=0:pi/n:2*pi;
y=sin(x);
k=0;
for t=0:pi/n:2*pi
k=k+1;
x(k)=t
y(k)=sin(t);
H=plot(x,y,x(k),y(k),'or')
grid
MOV=getframe(fig);
aviobj=addframe(aviobj,MOV);
end
close(fig)
aviobj=close(aviobj);

哦 这个原因很简单
%by dynamic
%see also http://www.matlabsky.com
%contact me matlabsky@gmail.com
%2009.2.
%

是因为你中途中断了程序的执行,比如在程序运行时,关闭了figure,而此时程序是没有运行完而中断的,当然aviobj=close(aviobj);命令没有执行了,也就是说aviobj对象现在还打开着没有关闭

你现在重新让aviobj=avifile('example.avi'); 覆盖前一次生成的exmaple.avi当然不行了,因为example.avi还打开着

解决方法
cleam mex清空那些还在的avi对象
aviobj=close(aviobj);关闭那个对象
删除example.avi
换一个新的文件名比如example2.avi