Я должен был указать, что нижний предел, до которого мне нужно вычислить расстояние для всех точек диаграммы рассеяния, варьируется для разных значений x (фрагмент горизонтальной линии должен был быть упрощением, но, возможно, вводил в заблуждение ... извинения за это )
Сначала я изменил данные, которые я уже прочитал, в рабочую область, заменив все значения NaN
на 0
. Затем я написал while
l oop, который определяет число, если индексы до l oop through, и определил условие &&
для фильтрации любых нулей. Затем я написал вложенный if
l oop, который проверяет, в какой диапазон значений x попадает данный индекс, и затем принимает дельту между значениями y нижнего предела линейной линии для этого участка графика и заданной точки , Я повторил это для всех точек.
while idx <= numel(my_data(:,3)) && not(my_data(idx,3) == 0)
...
if my_data(idx,3) < upper_x_lim && my_data(idx,5) > lower_x_lim
vert_deviation = vert_deviation + (my_data(idx,4) - (m6 * (my_data(idx,5)) + b6))
end
...
m6
и b6
в этом случае - наклон и у-пересечение, рассчитанные для одного участка графика. if
l oop повторяется шесть раз для каждой секции нижнего предела.
Я уверен, что есть более элегантные способы сделать это, поэтому я открыт для любых отзывов, если есть место для улучшения!