У меня есть код ниже. Он загружает CSV-файл в память. Этот файл содержит координаты для разных полигонов. Каждая строка этого файла имеет координаты X, Y и строку, которая сообщает, к которому принадлежит многоугольник, принадлежащий этому datapoint. например многоугольников с именем «Poly1» с 100 точек имеет 100 строк в этом файле, как:Одновременное рисование и заполнение разных полигонов в MATLAB
Poly1,X1,Y1 Poly1,X2,Y2 ... Poly1,X100,Y100 Poly2,X1,Y1 .....
Файл index.csv имеет количество (точки данных число строк) для каждого полигона в файле Polygons.csv , Эти детали не важны. Дело в том, что: Я могу успешно извлечь данные для каждого многоугольника, используя приведенный ниже код. Однако, когда я рисую линии разных полигонов, они связаны друг с другом, и сюжет выглядит дерьмовым. Мне нужны полигоны, которые нужно разделить (они связаны и перекрывают некоторые области). Я подумал, что, используя «заливку», я действительно вижу их лучше. Но «fill» просто заполняет каждый многоугольник, который он может найти, и это нежелательно. Я хочу только заполнить полигоны. Кто-нибудь может мне помочь? Я также могу отправить вам свой datapoint, если это необходимо, они меньше 200 КБ. Благодаря
[coordinates,routeNames,polygonData] = xlsread('Polygons.csv');
index = dlmread('Index.csv');
firstPointer = 0
lastPointer = index(1)
for Counter=2:size(index)
firstPointer = firstPointer + index(Counter) + 1
hold on
plot(coordinates(firstPointer:lastPointer,2),coordinates(firstPointer:lastPointer,1),'r-')
lastPointer = lastPointer + index(Counter)
end
Я получаю эту ошибку: ??? Неопределенная функция или метод 'eq' для входных аргументов типа 'cell'. Ошибка в ==> testPoly при 4 polyIndex = routeNames == polyName; % # Найти указатель точек полигона – Hossein
попробуйте 'ismember (routeNames, polyName)' вместо .. – Amro
@Amro: Спасибо. Я набрал его слишком быстро и пропустил это. ;) Теперь он должен работать. – gnovice