графическое построение функции и наборов данных на одном графике - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь отобразить 3 кривые измерений и теории на одном графике для сравнения, используя scilab.Проблема заключается в том, что хотя 2 кривые имеют одинаковый размер для своих наборов данных, теоретическая кривая должна быть построена из функции с гораздо большим набором данных, хотя обе имеют одинаковый диапазон.

D1 и D2 имеют 13 значений, которые должны бытьотображается с 13 значениями для оси x в D0 (тики должны быть в диапазоне от 0 до 500).Теоретическая функция должна отображаться вдоль чего-то вроде промежутка от 0 до 500 с 500 значениями, а не только с 13. Таким образом, все кривые выровнены по тикам от o до 500 по оси x.

Я пытался использоватькод показан ниже, но он будет отображать только кривые 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 кривые были на одном графике с осью х 0до 500.

1 Ответ

1 голос
/ 21 мая 2019

Вы сделали ошибку для функции linspace, вы должны использовать что-то вроде

   linspace(0, 500, 1000);

Первая точка, последняя точка, количество значений.

...