How to extract the data using inpolygon function ?
7 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
aa
el 25 de En. de 2021
Comentada: aa
el 25 de En. de 2021
Hi everyone,
May some one help me here ...
I have data in three colums. (1) x-coordinate; (2) y-coordinate; and (3) z-value (parametere) of data length (55000 data points: I reduce the file size due to limit of 5 MB) I required to extarct the z-values lying inside the polygon.
My scripit did not work for the above mentioned purpose. May someone help me how to handle this data and simple script attched here.
clear all
clc
data=xlsread('Mc_catalog.xlsx');
for i=1:length(data)
x = data(:,1) ; y = data(:,2) ; z = data(:,3 ) ;
xVertices = [-116.8, -116.7, -116.45, -116.7];
yVertices = [33.55, 33.40, 33.70, 33.85];
idx(i) = inpolygon(x(i), y(i), xVertices, yVertices);
iwant(i) = [ z(idx )] ;
end
Thank you.
0 comentarios
Respuesta aceptada
Cris LaPierre
el 25 de En. de 2021
Consult the inpolygon documentation page. You can probably do this without the for loop, as inpolygon can query a vector of points at once.
Here is an example from the linked page.
% Define polygon
L = linspace(0,2*pi,6);
xv = cos(L)';
yv = sin(L)';
% Define points to query
xq = randn(250,1);
yq = randn(250,1);
% Find points inside polygon
[in,on] = inpolygon(xq,yq,xv,yv);
% Visualize results
figure
plot(xv,yv) % polygon
axis equal
hold on
plot(xq(in),yq(in),'r+') % points inside
plot(xq(~in),yq(~in),'bo') % points outside
hold off
3 comentarios
Cris LaPierre
el 25 de En. de 2021
This syntax should work. Perhaps data does not have the values you think it does?
Here's how I might visualize the results.
data = readmatrix('data_new.xlsx');
x = data(:,1) ; y = data(:,2) ; z = data(:,3 ) ;
xVertices = [-116.8, -116.7, -116.45, -116.7];
yVertices = [33.55, 33.40, 33.70, 33.85];
idx = inpolygon(x, y, xVertices, yVertices);
iwant = z(idx);
% Visualize
plot3(xVertices,yVertices,zeros(size(xVertices)))
hold on
scatter3(x(idx),y(idx),iwant)
hold off
Más respuestas (0)
Ver también
Categorías
Más información sobre Matrices and Arrays en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!