Help with linear fit
    3 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    aurc89
 el 7 de Feb. de 2014
  
    
    
    
    
    Comentada: aurc89
 el 7 de Feb. de 2014
            Given a curve (x vs y) I need to do a linear fit but only between two points x1 and x2 of that curve. Then, I need to calculate the slope of this line. Could you suggest me the fastest way to do that? Thanks.
0 comentarios
Respuesta aceptada
  Mischa Kim
    
      
 el 7 de Feb. de 2014
        
      Editada: Mischa Kim
    
      
 el 7 de Feb. de 2014
  
      Here is one way:
x      = 0:0.05:1;                          % define data
y      = sin(x).^2;
x1     = x(10);                             % define interval
x2     = x(20);
xrange = x(find(x == x1):find(x == x2));    % pick out x and y vals in interval
yrange = y(find(x == x1):find(x == x2));
p      = polyfit(xrange, yrange, 1);        % do linear curve fit 
yfit   = polyval(p, xrange);
figure
hold on; grid; box
plot(x,y,xrange,yfit,'-r')
The first element of p is the slope of the linear curve.
Más respuestas (1)
  Jos (10584)
      
      
 el 7 de Feb. de 2014
        Here's how:
tf = x >  x1 & x < x2     % true for x1 < x < x2
p = polyfit(x(tf), y(tf),1) % fit on selection
Ver también
Categorías
				Más información sobre Interpolation en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


