Как найти отклонения (10% из них) в моей плоскости, а затем создать новую плоскость без этих отклоненных точек (точек)? - PullRequest
0 голосов
/ 08 мая 2019

Мне нужно найти отклонения в плоскости на 10% и создать новую плоскость без этих отклонений.

Я попытался суммировать все точки (точки) плоскости, а затем разделить их на количество точек, чтобы получить среднее значение, а затем убрать все отклоняющиеся точки. Проблема в том, что я не знаю, как ограничить отклонение до 10% от точек моего самолета.

function result = myFun(x, xPoints, yPoints, zPoints)
A = x(1);
B = x(2);
C = x(3);
D = x(4);

fc = sum(sum((A*xPoints + B*yPoints + C*zPoints + D).^2));
nNorm= sqrt(A*A + B*B + C*C);

og(1)= 1 - nNorm;
og(2)= nNorm - 1;

R = 10^6;
fk = ((og(1) + abs(og(1)))/2)^2 + ((og(2) + abs(og(2)))/2)^2;

result = fc + R*fk;
clc;
clear;

A = -0.316017;
B = 0.0634858;
C = -0.946627;
D = 554.238;

% A = 0;
% B = 0;
% C = -1;
% D = 0;

[xPoints, yPoints] = meshgrid(-100:10:100, -100:10:100);
noise =  5*randn(size(xPoints));
zPoints = (-A*xPoints - B*yPoints - D) / C + noise;
surf(xPoints, yPoints, zPoints)
funID = @(x)myFun(x, xPoints, yPoints, zPoints);
bestPlane = fminsearch(funID, [A B C D])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...