Animating a sine wave movie
조회 수: 23 (최근 30일)
이전 댓글 표시
Hi guys I would like to know how to make a movie of a sine wave using handle graphics and for each frame a for loop with getframe
a = -1; z = 0:pi/1000:2*pi; y = a*sin(z)
댓글 수: 0
채택된 답변
Image Analyst
2014년 10월 23일
See my attached demo. Just change the surf() call to plot() and it should work.
추가 답변 (1개)
Ced
2014년 10월 23일
편집: Ced
2014년 10월 23일
Something like that? (reduced the number of frames)
clear all
clc
close all
a = -1;
z = 0:pi/100:2*pi;
y = a*sin(z);
Nz = length(z);
% Set up your plot environment
figure
h = plot(z(1),y(1));
xlim([z(1) z(end)])
ylim([min(y) max(y)])
xlabel('z')
ylabel('a*sin(z)')
legend('my sine function')
init_getframe = struct('cdata',[],'colormap',[]);
frames = repmat(init_getframe, Nz, 1 );
frames(1) = getframe;
% Get frames
for i = 2:Nz
set(h,'XData',z(1:i));
set(h,'YData',y(1:i));
drawnow
frames(i) = getframe;
end
% Play movie
movie(frames)
But from experience, I prefer to save each frame to a file (e.g. .png), and then combine the frames later into a movie.
*EDIT*: I was a bit too slow. Make sure to check out Image Analysts answer for some extra frame size settings etc.
댓글 수: 4
BHANESH BHADRECHA
2016년 5월 12일
What if i want to increase the speed of animation, i mean i want to show more data samples at a time.
please reply with an answer.
참고 항목
카테고리
Help Center 및 File Exchange에서 Animation에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!