MATLAB: Matlab locks avi movie.

avifile lockmovie

I am just executing the following example to create a avi movie. After it's done, I cannot rename the file because Windows claims Matlab still has it "open".
Z = peaks;
surf(Z)
axis tight manual
ax = gca;
ax.NextPlot = 'replaceChildren';
loops = 40;
F(loops) = struct('cdata',[],'colormap',[]);
for j = 1:loops
X = sin(j*pi/10)*Z;
surf(X,Z)
drawnow
F(j) = getframe(gcf);
end
fig = figure;
movie(fig,F,2);
movie2avi(F, 'awesomeMovie', 'compression', 'None');
What's a good way to break that connection?
Thank you. Dave

Best Answer

Are you using a pre 2010b version of Matlab?
If not then you should be able to use VideoWriter instead as movie2avi will be removed in a future release (according to the help).
e.g.
v = VideoWriter('newfile.avi');
% set properties of VideoWriter
open(v)
writeVideo(v,rand(300))
close(v)
This includes a clear instruction to close the VideoWriter.
I guess in your case just doing an
fclose( 'awesomeMovie' )
ought to work.
Related Question