Melhor ajuste de avião para dados 3D

Eu tenho meus dados 3D X, Y, Z (Matrizes com tamanho NxM)

Eu quero encaixá-lo no melhor plano que eu fiz:

X = X(isfinite(X));% deleting the NaN because svd Doesn't accept them
Y = Y(isfinite(Y));
Z = Z(isfinite(Z));

G = [X,Y,Z,ones(size(X(:)))];
[u s v] = svd(G,0);
P = v(:,4);
scalar = 2*P./P(1);
P = P./scalar; % supposed to be my plane equation but there is something wrong

e então recalcule o Z de X e Y

Z = -(P(1)*X + P(2)*Y + P(4)) / P(3);

Eu não sei qual é o problema !!

questionAnswers(1)

yourAnswerToTheQuestion