GetLinearRegression.m 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. function [Regression, f] = GetLinearRegression(x,y,varargin)
  2. if isempty(varargin)
  3. flag=0;
  4. f=0;
  5. else
  6. flag=1;
  7. g = varargin{1};
  8. end
  9. j=1;
  10. for i=1:length(x)
  11. if ~isnan(x(i)) && ~isnan(y(i))
  12. x1(j)=x(i); y1(j)=y(i);
  13. j=j+1;
  14. end
  15. end
  16. if exist('x1')
  17. [r, p] = corrcoef(x1,y1);
  18. Regression.R=r(1,2);
  19. Regression.Rsquared=r(1,2)^2;
  20. Regression.Pvalue=p(1,2);
  21. if flag
  22. [a] = polyfit(x1,y1,1);
  23. f=polyval(a,x1);
  24. [r2, rmse] = rsquare(y1,f);
  25. Regression.a0=a(2); Regression.a1=a(1); % f(x) = a0 + a1*x
  26. Regression.x2=[g.XLim(1) g.XLim(2)];
  27. Regression.y2=Regression.a0+Regression.a1*Regression.x2;
  28. end
  29. else
  30. Regression.R=NaN;
  31. Regression.Rsquared=NaN;
  32. Regression.Pvalue=NaN;
  33. end
  34. % p3=plot(x2,y2,'k-');
  35. % p3.LineWidth=2;
  36. % deltaY=(g.YLim(2)-g.YLim(1))/10;
  37. % deltaX=(g.XLim(2)-g.XLim(1))/10;
  38. % t1=text((g.XLim(1)+3*deltaX), (g.YLim(2)-4*deltaY),['p-value : ' num2str(round(Pvalue,3))]);
  39. % t1.FontSize=fontsize.axis; t1.FontWeight='bold';
  40. % t2=text((GCA.XLim(1)+3*deltaX), (GCA.YLim(2)-3*deltaY),['r-squared : ' num2str(round(Rsquared,3))]);
  41. % t2.FontSize=fontsize.axis; t2.FontWeight='bold';
  42. % t3=text((g.XLim(1)+3*deltaX), (g.YLim(2)-2*deltaY),['r : ' num2str(round(r(1,2),3))]);
  43. % t3.FontSize=15; t3.FontWeight='bold';
  44. %