如何用 matlab 用 loglog 绘制两个单独的图形?

how to draw with matlab two seprate graphs with loglog?

我正在用 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);

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

如果你想在两个不同的 window 上绘制两个不同的图形,你应该添加行:

figure;

每次您想绘制新的 window。 在您的代码中,您现在应该有

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

figure;
loglog(n,y3);

如果你想在同一个'figure'上绘制两个不同的图,你应该使用命令subplot,像这样:

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

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

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

此外,我认为您发布的向量尺寸代码有误。你应该验证你想要绘制什么。