在同一张图上绘制函数和数据集的 scilab

scilab plotting of a function and datasets on the same graph

我正在尝试使用 scilab 在同一张图上显示 3 条测量曲线和理论曲线以进行比较。问题是,虽然 2 条曲线的数据集大小相同,但理论曲线应该由具有更大数据集的函数制成,尽管两者具有相同的范围。

D1 和 D2 有 13 个值与 D0 中 x 轴的 13 个值一起显示(tiks 的范围应为 0 到 500)。 理论函数应该沿着从 0 到 500 的 linspace 显示,有 500 个值,而不仅仅是 13。这样所有曲线都与 x 轴上从 o 到 500 的 tiks 对齐。

我尝试使用下面显示的代码,但它只会显示 D1 和 D2 的曲线。

我的代码:

clc;
clear;
xdel(winsid());
    D0 = [0, 40, 80, 120, 160, 200, 240, 280, 320, 360, 400, 440, 480]; 
//x axis for D1 and D2
    D1 =[4.96, 5, 4.96, 4.96, 4.96, 4.96, 4.96, 4.96, 4.95, 4.96, 4.96, 4.96, 4.96];  //first curve
    D2 =[0, 1.61, 2.73, 3.58, 4.05, 4.24, 4.56, 4.72, 4.93, 4.88, 4.90, 4.90, 4.95];  //second curve
    foo1 = (-5)*(1-%e^((-1)/(0.1)*(linspace(0, 1, 500))));                            //the problematic function that will not show on the plot when the other curves are displayed
scf();
  aa = gca();
  aa.font_size=3;
  aa.thickness=2;
  plot(D0, D1, "r-", "fontsize",5);
  plot(D0, D2, "g-", "fontsize",5);
  plot(linspace(0, 1, 500), foo1);

我希望 3 条曲线在 x 轴为 0 到 500 的同一个图形上。

你对 linspace 函数犯了一个错误你应该使用类似

   linspace(0, 500, 1000);

第一个点,最后一个点,值的数量。