matlab动画制作求教
来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/08/19 06:00:11
matlab动画制作求教
怎样把连续函数plot成动画效果,例如
dx=0.1;
x=1:dx:10;
N=length(x);
y(1:round(N/4))=ones(1,round(N/4));
y(round(N/4)+1:N)=-0.5*ones(1,round(3*N/4));
plot(x,y)
axis([1,10,-2,3])
hold on
怎样能制作成显示绘制函数图象轨迹的动画呢,我想是制作擦除动画吧,然后选EarseMode,none.
折腾了好久折腾不出来,求高手给个代码
第二个问题就是想问一下subplot跟动画制作矛盾吗,可以在subplot的每个图中都显示动画效果吗?
最后一个问题是,如果subplot的第二个函数是第一个函数积分得来的,如果想把第二个函数也做成动画效果的话,应该怎么编写程序?
例如:
以下是编写的积分function script
function
[Iy]=integral(y,dx)
total=0;
for i=1:length(y)
total = total + y(i)*dx;
Iy(i) = total;
end
%然后就用这个function积分
dx=0.1;
x=1:dx:10;
N=length(x)
y(1:round(N/4))=ones(1,round(N/4));
y(round(N/4)+1:N)=-0.5*ones(1,round(3*N/4));
plot(x,y,'r.')
hold on
y1=integral(y,dx);
y2=integral(y1,dx);
subplot(1,2,1)
plot(x,y1,'k.')
subplot(1,2,2)
plot(x,y2,'b.')
hold off
怎样把连续函数plot成动画效果,例如
dx=0.1;
x=1:dx:10;
N=length(x);
y(1:round(N/4))=ones(1,round(N/4));
y(round(N/4)+1:N)=-0.5*ones(1,round(3*N/4));
plot(x,y)
axis([1,10,-2,3])
hold on
怎样能制作成显示绘制函数图象轨迹的动画呢,我想是制作擦除动画吧,然后选EarseMode,none.
折腾了好久折腾不出来,求高手给个代码
第二个问题就是想问一下subplot跟动画制作矛盾吗,可以在subplot的每个图中都显示动画效果吗?
最后一个问题是,如果subplot的第二个函数是第一个函数积分得来的,如果想把第二个函数也做成动画效果的话,应该怎么编写程序?
例如:
以下是编写的积分function script
function
[Iy]=integral(y,dx)
total=0;
for i=1:length(y)
total = total + y(i)*dx;
Iy(i) = total;
end
%然后就用这个function积分
dx=0.1;
x=1:dx:10;
N=length(x)
y(1:round(N/4))=ones(1,round(N/4));
y(round(N/4)+1:N)=-0.5*ones(1,round(3*N/4));
plot(x,y,'r.')
hold on
y1=integral(y,dx);
y2=integral(y1,dx);
subplot(1,2,1)
plot(x,y1,'k.')
subplot(1,2,2)
plot(x,y2,'b.')
hold off
![matlab动画制作求教](/uploads/image/z/18234346-58-6.jpg?t=matlab%E5%8A%A8%E7%94%BB%E5%88%B6%E4%BD%9C%E6%B1%82%E6%95%99)
动画不是这样做的. 参照你的代码,做了一个简单的例子,供参考:function zd
dx=0.1;
x=1:dx:10;
N=length(x);
y=ones(1,round(N/4));
y(round(N/4)+1:N)=-0.5*ones(1,round(3*N/4));
y1=integral(y,dx);
y2=integral(y1,dx);
subplot 311
h1=plot(x(1),y(1));
axis([1,10,-1,1.5])
subplot 312
h2=plot(x(1),y1(1),'k.');
axis([1,10,-1,3])
subplot 313
h3=plot(x(1),y2(1),'b.');
axis([1,10,0,10])
for ii=2:length(x)
set(h1,'x',x(1:ii),'y',y(1:ii))
set(h2,'x',x(1:ii),'y',y1(1:ii))
set(h3,'x',x(1:ii),'y',y2(1:ii))
drawnow
pause(0.01)
end
function [Iy]=integral(y,dx)
total=0;
Iy = y*0;
for i=1:length(y)
total = total + y(i)*dx;
Iy(i) = total;
end把所有代码复制保存成M文件运行即可.有问题再追问吧.
dx=0.1;
x=1:dx:10;
N=length(x);
y=ones(1,round(N/4));
y(round(N/4)+1:N)=-0.5*ones(1,round(3*N/4));
y1=integral(y,dx);
y2=integral(y1,dx);
subplot 311
h1=plot(x(1),y(1));
axis([1,10,-1,1.5])
subplot 312
h2=plot(x(1),y1(1),'k.');
axis([1,10,-1,3])
subplot 313
h3=plot(x(1),y2(1),'b.');
axis([1,10,0,10])
for ii=2:length(x)
set(h1,'x',x(1:ii),'y',y(1:ii))
set(h2,'x',x(1:ii),'y',y1(1:ii))
set(h3,'x',x(1:ii),'y',y2(1:ii))
drawnow
pause(0.01)
end
function [Iy]=integral(y,dx)
total=0;
Iy = y*0;
for i=1:length(y)
total = total + y(i)*dx;
Iy(i) = total;
end把所有代码复制保存成M文件运行即可.有问题再追问吧.