how to form eucledian distance based clusters inside each rectangular grids b/w nodes present in each grid

Réponses (2)

close all;
clc;
ngrid=4;%no. of grids
N=200;
R=0.5;
sink.x=3.1;
sink.y=3.1;
x = linspace(0, 4, ngrid+1);
E=0.5;
[X,Y] = meshgrid(x);
figure(1)
plot(X,Y,'k')
hold on
plot(Y,X,'k')
hold on
ngrid = 4;
coords = rand(N,2) * ngrid;
nodes = struct('x',coords(:,1),... %# Assign x coordinates
'y',coords(:,2),... %# Assign y coordinates
'energy',E);
scatter(coords(:,1),coords(:,2));
set(gca, 'XTick', 1:ngrid+1, 'YTick', 1:ngrid+1)
axis square
plot(nodes.x,nodes.y,'o','LineWidth',2, 'MarkerEdgeColor','m','MarkerFaceColor','m','MarkerSize',3)
plot(sink.x,sink.y,'d','LineWidth',2, 'MarkerEdgeColor','r','MarkerFaceColor','y','MarkerSize',12)
grid on;
%%Get nodes inside for each box
P1 = cell(4,4) ;
for i = 1:4
for j = 1:4
A = [X(i,j) Y(i,j)] ;
B = [X(i+1,j+1) Y(i+1,j+1)] ;
idx = find(nodes.x >= A(1) & nodes.x <B(1)) ;
idy = find(nodes.y >= A(2) & nodes.y <B(2)) ;
id = intersect(idx,idy) ;
P1{i,j} = [nodes.x(id) nodes.y(id)] ;
% plot points inside first box
plot(P1{i,j}(:,1),P1{i,j}(:,2),'*g')
end
end

Catégories

En savoir plus sur WSNs dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by