movie 要求你在内存中有一系列RGB图像,并且它们存储在为其设计的结构数组中 movie 功能。
movie
你可以做的是一次绘制一个信号 hold on 。此外,您可以使用 getframe 实际上将每个绘图捕获到图像中以获得所需的格式 movie ,将它连接成一个结构数组,最后播放电影。
hold on
getframe
我看到你正在同时绘制所有信号,每个信号只有一列。为了使这容易,再做一个 for 循环并循环通过每个信号 - 每列一个并一次绘制这一个。
for
A=0.1; %Diffusivity or conductivity (switching for variable K) L=1; %Length of rod dt= 10^(-4); %value of timestep X=100; %Wants to Discretize rod into 100 separate sections t= 10; % 50 timesteps will be taken (dt) dx=L/X; %delta X needed for the heat equation for this case Pi/100 x1=linspace(0, L, X); %Take 100 equally spaced sections between 0 and L y1=linspace(0, t, 51); T1= zeros(X,t); %set a X x t matrix of zeros %Set boundary and initial conditions %T0=0; Ends of rod temperature are 0 %TL=0; %Create a for loop to continuously solve the heat equation until time is up for i= 2:X-1 %X-1 because we already know initial point for j=1:50 % used to update heat equation each step T1(:,1)= sin((pi*x1(i))/L);%start solving the heat equation at second % value in the matrix in column 1 (skip % 1st because we have initial condition) T1(1,:) = 0; %Gives the first column = 0 T1(100,:) = 0; %Gives last column = 0 just as initial conditions state %Heat Equation for T^n+1 (i) T1(i,j+1)= A*dt*((T1(i+1,j)-2*T1(i,j)+T1(i-1,j)/dx^2))+ T1(i,j); end end figure(1) hold on; % New % New - To store the frames for the movie frames = repmat(struct('cdata', [], 'colormap', []), 50, 1); for j = 2 : 51 plot(x1,T1(:,j)); frames(j - 1) = getframe(gcf); end close all; % Close the figure % Play the movie figure; movie(frames, 1, 5); % Play the movie once at 5 frames per second
新代码将所需的绘图存储为图像 - 您必须看到图形绘制,以便抓取帧。之后,我们关闭数字并以5 FPS播放电影。在这一点之后,你只需要运行最后一个 movie 可以根据需要多次播放电影。第二个参数指定希望影片重复的次数,第三个参数指定影片每秒的帧数。