MATLAB Answers

MaD
0

Matlab plot recording to a video

Asked by MaD
on 10 Sep 2019
Latest activity Answered by darova
on 10 Sep 2019
hi,
I woulkd like to create a video where a plot is created based on the .txt file read. The plot should have the 'main screen' and a 'zoomed screen' in the conner and the variable should be recorded simultaneously in both plots.
Im sharing my current example.
Is it possible to specify the target plot for the variable? or any other suggestion?
%% Create figure frame
fid = figure;
hold on
grid on
xlim([-0.1 1.12]) %setting hard limits for x-axis
ylim([0.8 1.2]) %setting hard limits for y-axis
h=axes('Parent', fid, 'position',[0.5 0.2 0.3 0.3]);
%% Set up and writing the movie.
writerObj = VideoWriter('out_movie_540_.avi'); % movie name.
writerObj.FrameRate = 540/4; % Frames per second. Larger number correlates to smaller movie time duration.
open(writerObj);
for i=1:size(tnow)
% pause(0.1); % The command designed to slow down the live recording of the matlab graph.
figure(fid); % Makes sure you use your desired frame.
plot(tnow(i),p_pf1(i),'r.');
if mod(i,4)==0 % Uncomment to take 1 out of every 4 frames.
frame = getframe(gcf); % 'gcf' can handle if you zoom in to take a movie.
writeVideo(writerObj, frame);
end
end
hold off
close(writerObj);% Saves the movie.

  0 Comments

Sign in to comment.

1 Answer

Answer by darova
on 10 Sep 2019

Example
clc,clear
x = linspace(0,10);
y = sin(x) + 0.1*cos(10*x);
fid = figure;
h1 = gca;
plot(x,y);
hold on
h2 = axes('Parent',fid,'Position',[0.6 0.2 0.2 0.2]);
plot(x,y)
hold on
for i = 1:length(x)
h(1) = plot(h1,x(i),y(i),'or');
h(2) = plot(h2,x(i),y(i),'or');
xlim(h2, [-1 1]+x(i))
ylim(h2, [-1 1]+y(i))
pause(0.2)
delete(h)
end
hold off
But when i try to plot in the same figure
fid = figure(1)
export_fig_out.png
Any idea?

  0 Comments

Sign in to comment.