what i got so far
clc;
clear;
close all;
basestation = 100*rand(1,2);
x = [rand(100,2)*100;50 50];
ResEn = 20*rand(100,1);
k = randperm(100);
emptyparticle.position = [];
emptyparticle.velocity = [];
emptyparticle.energy = [];
emptyparticle.cluster = cell(15,1);
emptyparticle.cost = [];
emptyparticle.best.position = [];
emptyparticle.best.cost = [];
emptyparticle.clustervalues = [];
particle = repmat(emptyparticle,20,1);
for i = 1:20
k = randperm(100);
emptyparticle.position.cluster = x(k(1:15),:);
particle(i).position = x(k(1:15),:);
particle(i).velocity = 0;
particle(i).energy = ResEn(k(1:15),:);
end
for i = 1:20
for k = 1:15
for j = 1:100
if pdist2(particle(i).position(k),x(j))>50
particle(i).clustervalues(k,j) = 0;
elseif pdist2(particle(i).position(k),x(j))<50
if size(particle(i).cluster{k},1) == 0
particle(i).clustervalues(k,j) = 1/(pdist2(particle(i).position(k),x(j)*pdist2(x(101),particle(i).position(k))));
%%[m, ind] = max(particle(i).clustervalues(j));
%%particle(i).cluster{ind} = [x(j,:)]
m(j) = max(particle(i).clustervalues(j));
particle(i).cluster{find(particle(i).clustervalues(j)==m(j))} = [particle(i).cluster{find(particle(i).clustervalues(j)==m(j))};x(j,:)];
elseif size(particle(i).cluster{k},1) > 0
particle(i).clustervalues(k,j) = 1/(pdist2(particle(i).position(k),x(j)*pdist2(x(101),particle(i).position(k))*size(particle(i).cluster{k},1)));
m(j) = max(particle(i).clustervalues(j));
particle(i).cluster{find(particle(i).clustervalues(j)==m(j))} = [particle(i).cluster{find(particle(i).clustervalues(j)==m(j))};x(j,:)];
%%[m, ind] = max(particle(i).clustervalues(j));
%%particle(i).cluster{ind} = [particle(i).cluster{ind};x(j,:)];
end
end
end
end
end