в Matlab, ransac
является частью набора инструментов Computer Vision. Страница справки по функции предоставляет следующее описание входных данных:
"Данные для моделирования, указанные как матрица m-на-n. Каждая строка соответствует точке данных в наборе для моделирования. Например, для моделирования набора двумерных точек укажите данные точек как матрица м-2 "
это указывает на то, что вы просто предоставили бы свои 3D-данные в виде массива размером 3 на 3. такие как:
DATA = [ 0 0 0; 0 0 1; 1 2 3];
и т.д.
Если данные CSV представляют собой не что иное, как массив из 3 столбцов на ~ 4000 строк без какого-либо другого текста или данных, вы просто сможете прочитать данные как:
>> DATA = dlmread('data.txt')
DATA =
0 0 0
0 0 1
1 2 3
сопровождается чем-то вроде:
[model, inpoints] = ransac (DATA, ...model options...)
Различные параметры модели описаны на странице справки Matlab, с примером для набора 2d данных, сравнивающего подгонку наименьших квадратов и RANSAC с использованием модели "M-оценка SAmple and Consensus" (MSAC). Их следует расширить с 2D на 3D, если формула расстояния является первичной оценкой для ошибки и включения.
Я заметил, что вы также пометили этот вопрос для Octave. В настоящее время в Octave не реализована функция, совместимая с ransac
. Если вы хотите запустить код в Octave, быстрый поиск покажет несколько реализаций, которые указывают на совместимость Octave, а именно:
Обратите внимание, что эти реализации могут отличаться, в том числе метод или способность обрабатывать трехмерные данные.