File Exchange

image thumbnail


version 1.0 (1.48 KB) by

Fits a plane to 3D data using singular value decomposition



View License

Fits a plane of the from z=Ax+By+C to the data and provides the coefficients A,B and C. The functions uses the svd command (singular value decomposition).

a=1; b=2; c=-2;
x=x(:); y=y(:); z=z(:);
plot3(x,y,z,'r.'); hold on; grid on;
surf(X,Y,Z,'FaceColor','g'); alpha(0.5);
title(['a=',num2str(a), ', A=',num2str(A),', b=',num2str(b),', B=',num2str(B),', c=',num2str(c),', C=',num2str(C)]);

Comments and Ratings (7)

Arman Rezaee

x I'm tc

Doesn't seem to work, but perhaps it is not doing what I hope it is doing.

Hi, I want to use your code for my project.

But I have a problem with it.........I am not familiar with this topic though. I'm not sure I am using my outputs from this function in the right way to plot my plane.

I have posted this on

Please let me know if you need additional information.

Although your function fits properly with my data points, the angle detected between two planes does not seem right.

Thank you.

Nathan Tomlin

Jan Neggers

It worked perfectly for me. Although i didn't understand SVD and therefore tried it with a least squares method, which also works.

Didn't work for me, and the data was as planar as one could expect it to be...

MATLAB Release
MATLAB 7.4 (R2007a)

Inspired: threepoints2planez

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video