Asked by Iaroslav Gritsayenko
on 15 Apr 2015

I have scatter data and need to fit it with a curve (line) which passes through one exact and fixed point (0,0).

How can I do this?

Thank's for respond.

Iaroslav.

Answer by Star Strider
on 15 Apr 2015

If you do not include a constant (intercept) term in your model, it will force an intercept at (0,0). So if it is a straight line, to fit (x,y) data, this works:

x = randi(10, 10, 1); % Create Data

y = randi(50, 10, 1); % Create DAta

B = x(:)\y(:); % Regression Of Line Through Origin

yfit = x(:)*B; % Calculate Fitted Line

figure(1)

plot(x, y, 'bp') % Plot Data

hold on

plot(x, yfit, '-r') % Plot Fitted Regression Line

hold off

grid

axis([0 max(x) 0 max(y)])

pfb
on 15 Apr 2015

this is definitely more professional :)

Star Strider
on 15 Apr 2015

Thank you.

Sign in to comment.

Answer by pfb
on 15 Apr 2015

Edited by pfb
on 15 Apr 2015

Is that a straight line or a curve? And, in the second case, which curve?

In the first case you're basically expecting that y is proportional to x. So y./x should be roughly constant, and mean(y./x) would be an estimate of the slope, right?

Sign in to comment.

Answer by Iaroslav Gritsayenko
on 15 Apr 2015

Thank you very much, I understood how to do it.

My line will have equation y= a*x+b, where b=0; And a=mean(Y./X)

And does mathlab have some function to build fitting curve (not only line) with the fixed point in general case?

Star Strider
on 15 Apr 2015

pfb
on 15 Apr 2015

perhaps custom equation in cftool?

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 0 Comments

Sign in to comment.