2016-08-09 6 views
0

Я создал 10 точек облаков в Matlab, но у меня разное количество точек в каждом облаке. Я хочу уничтожить его до того же количества очков. Есть ли какая-либо функция в Matlab для повторной выборки/уменьшения точки облака для фиксированного числа точек (например: до 1000 точек)?Точечное облако в Matlab

Я был бы признателен за любую помощь & консультации, пожалуйста :)

ответ

1

Предполагая, что ваши точки помутнения, хранятся в виде матриц, вы будете иметь 10 матриц с различным числом строк каждого (или, может быть, у вас есть только ячейки, хранящей матрицы). (назовем их PointCloud1, PointCloud2 ... PointCloud10)

Если вы хотите случайно взять 1000 точек каждой матрицы (при условии, что наименьшая матрица имеет не менее 1000 точек), я бы предложил использовать randperm для генерации случайной перестановки индексов, а затем взять первые 1000 индексов.

Пример использования PointCloud1:

[nrows, ncols] = size(PointCloud1); 
idx = randperm(nrows); 

sub_PC1 = PointCloud1(idx(1:1000),:); 

Здесь sub_PC1 является подвыборки 1000 случайных рядов PointCloud1.