Plane fit (z=ax+by+c) to 3D point data

18 visualizzazioni (ultimi 30 giorni)
Hi,
I have step plot (attached) and I want to fit a plane on the lower terrace of it. Excel file of point cloud is attached as well. Data represent in file is N-by-3 numeric data and each column corresponds to x, y and z. Could anyone please help me out how to fit the plane to the lower terrace?

Risposta accettata

Akira Agata
Akira Agata il 7 Set 2017
Assuming that your data is N-by-3 numeric array, say yourData, and each column corresponds to x, y and z, the following code can generate a, b and c for fitting plane (z = ax + by + c).
% Assuming that yourData is N-by-3 numeric array
B = [ones(N,1), yourData(:,1:2)] \ yourData(:,3);
Where a = B(2), b = B(3) and c = B(1).
  1 Commento
Hongshun Chen
Hongshun Chen il 24 Apr 2019
What if the plane is parallel to the z. Singularity will come out when calculating the plane normal.

Accedi per commentare.

Più risposte (1)

KSSV
KSSV il 7 Set 2017
[num,txt,raw] = xlsread('Step_scan01_ex.xls') ;
x = num(:,1) ; y = num(:,3) ; z = num(:,3) ;
x0 = min(x) ; x1 = max(x) ; nx = 500 ;
y0 = min(y) ; y1 = max(y) ; ny = 500 ;
xx = linspace(x0,x1,nx) ;
yy = linspace(y0,y1,ny) ;
[X,Y] = meshgrid(xx,yy) ;
Z = griddata(x,y,z,X,Y) ;
surf(X,Y,Z)
shading interp

Categorie

Scopri di più su Get Started with Statistics and Machine Learning Toolbox in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by