问题 -
我正在研究一些matlab代码,它解决了2个一阶微分和2个二阶微分。我对dsolve()很好,但是当我想要绘制时我正在使用ezplot并且它没有给我我想要的东西。我想生成一个带有四个图形的窗口。我知道我会使用subplot,但我不知道如何,一个例子会很好。此外,我不知道如何使我的情节显示重要区域,而不仅仅是一个大区域。我的代码如下:
close all % close all figure windows that are open
clear all % clear all the variables currently stored in memory
clc % clear the commands in the command window
%%Problem 1%%%%%
a = (dsolve('Dv = -500*v+5000','v(0)=5'));
display (a)
b = (dsolve('Dx = -2000*x+100','x(0)=-.02'));
display (b)
%%Problem 2%%%%%
c = (dsolve('D2y+2000*Dy+26000000*y-520000000=0','Dy(0)=0','y(0)=5'));
display(c)
d = (dsolve('D2y+100*Dy+2500*y-520000000=0','Dy(0)=20','y(0)=0'));
display (d)
figure
ezplot(a);
axis([0,.01,4,10])
figure
ezplot(b);
axis([0,.01,0,10])
figure
ezplot(c);
axis([0,.01,4,10])
figure
ezplot(d);
axis([0,.01,4,10])
答案 0 :(得分:2)
直到现在我才知道,但似乎ezplot
只为你的情节的“有趣部分”生成数据点。因此,如果指定ezplot
不使用的x限制,则看不到任何内容。您需要做的是在ezplot
的第二个参数中指定x限制。然后,您可以使用标准suplot
函数创建子图,获取轴手柄,并指定轴。代码的绘图部分应该是这样的。
figure
h1=subplot(2,2,1);
ezplot(a, [0,0.01]);
axis(h1,[0,0.01,4,10])
h2=subplot(2,2,2);
ezplot(b, [0,0.01]);
axis(h2,[0,.01,0,10])
h3=subplot(2,2,3);
ezplot(c, [0,0.01]);
axis(h3,[0,.01,4,10])
h4=subplot(2,2,4);
ezplot(d, [0,0.01]);
axis(h4,[0,.01,4,10])