0

我很想用matlab绘制两个函数:

y1=ln(n!)y2=ln(n)*n 当n是这样的向量时:我n=1:100 想在同一个图中绘制这两个函数,然后绘制另一个函数:((y2-y1)/y1)在不同的图上..我做了以下但它只向我展示了只有一个函数的第一个图,我做错了什么有什么帮助吗?谢谢。

n=1:100;
format long
n_factorial=factorial(n);
y1 =log(n_factorial);
figure;
loglog(n,y1,'b');
hold on;
y2=(n*(log(n)'));
loglog(n,y2,'r');

y3=((y2-y1)/y1);
loglog(n,y3);
4

1 回答 1

0

您可以使用两种不同的方法来绘制多个图形。

如果要在两个不同的窗口上绘制两个不同的图形,则应添加以下行:

figure;

每次您想在新窗口上绘图时。在您的代码中,您现在应该有

figure;
loglog(n,y1,'b'); hold on;
loglog(n,y2,'r');

figure;
loglog(n,y3);

如果要在同一个“图形”上绘制两个不同的图形,则应使用命令 subplot,如下所示:

subplot(2,1,1);
loglog(n,y1,'b'); hold on;
loglog(n,y2,'r');

subplot(2,1,2);
loglog(n,y3);

它基本上将窗口区域划分为 2 行和 1 行,并为每个位置指定一个索引(在本例中为 1 和 2),您使用 subplot 命令的第三个参数指定该索引。

另外,我认为您发布的向量尺寸代码中存在错误。您应该验证您想要绘制的内容。

于 2018-05-07T11:10:58.213 回答