Surf function problem
Show older comments
I have a problem drawing a surface for a regression.
I have 3 vectors Y, X1, X2 and I have estimated the multiple linear regression: Y = c + a*X1 + b*X2 + u
I would like to draw the graph of this regression: Y = c + a*X1 + b*X2 + u using a MATLAB plot-graph.
I have tried the 'surf' function but I get this error 'Matrix dimensions must agree'.
I have done these things so far.
- Estimate the coefficients (c,a,b).
- Make a new serie [f=Y(estimated)], using the estimated coefficients (c,a,b). New serie: f = c + a*X1 + b*X2
- Use the 'surf' function. surf(X1,X2,f)
Can someone help me? I can’t understand what I am doing wrong.
PS: I use MATLAB 6.5*
Accepted Answer
More Answers (6)
Sean de Wolski
on 26 Jan 2011
I.e. the known Y-values that you used for your regression? How about:
scatter3
or
plot3
to overlay them on your surface?
Sean de Wolski
on 26 Jan 2011
Yes.
figure;
surf(...)
hold on
scatter3(...)
strat
on 26 Jan 2011
0 votes
strat
on 26 Jan 2011
0 votes
strat
on 26 Jan 2011
0 votes
1 Comment
Sean de Wolski
on 26 Jan 2011
So you overwrote the original X1,X2 with the meshgrid X1,X2?
The call to scatter3 should be with the _original_ X1,X2 used for your regression and Y
scatter3(X1orig,X2orig,Y)
strat
on 26 Jan 2011
0 votes
Categories
Find more on Surface and Mesh Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!