xdel(winsid()) clear; t = linspace(-2,20,2000); a = 0.4; b = 0.45; k = 1; magnitude = 100; offset = 24 // Generera självaste pulsformen y = k*(exp(-a*t) - exp(-b*t) ); // Fyll på med lite platt mark före t=0 y(y<0) = 0; // Normalisera till 1 och multiplicera med magnituden y = y/max(y)*magnitude; // Hitta index för första passagen av 10% x10r = 0; for i = [1:length(y)] if(y(i) > 0.1*magnitude) if((y(i)-0.1*magnitude) < (0.1*magnitude-y(x10r))) x10r = i; end; break; end; x10r = i; end // Hitta index för första passagen av 90% x90r = 0; for i = [1:length(y)] if(y(i) > 0.9*magnitude) if((y(i)-0.9*magnitude) < (0.9*magnitude-y(x90r))) x90r = i; end; break; end; x90r = i; end // Hitta index för första passagen av 10% x10f = 0; for i = [length(y):-1:1] if(y(i) > 0.1*magnitude) if((y(i)-0.1*magnitude) < (0.1*magnitude-y(x10f))) x10f = i; end; break; end; x10f = i; end // Lägg på ett offset y = y+offset; //Generera vertikala linjer xpts = [1 1]; ypts = [-100 max(y)*2]; //plot(xpts*0, ypts, '-black'); // Vertikalt streck på x = plot(xpts*t(x10r), ypts, ':'); plot(xpts*t(x90r), ypts, ':'); plot(xpts*t(x10f), ypts, '-.'); // Generera horisontella linjer plot(t, y, "black"); hline = ones(1,length(y)); plot(t,hline.*y(x10r), ':'); p = get("hdl"); p = p.children; p.line_style = 7; plot(t,hline.*y(x90r), ':'); // titletxt = ['$y = k(e^{-\alpha t} - e^{-\beta t})$' ; strcat(['$k=', string(k), ', \alpha=', string(a), ', \beta=', string(b), '$']) ]; //titletxt = '$u(t) = k(e^{-\alpha t} - e^{-\beta t})$'; //title(titletxt , 'fontsize', 8); //xlabel('t (s)', 'fontsize', 7); //ylabel('U (V)', 'fontsize', 7, 'rotation', 0); a = get("current_axes"); //a.axes_visible = "off"; // Rita axlarna i 0 //a.x_location = "origin"; //a.y_location = "origin"; a.data_bounds = [min(t),-0.02;max(t),200];