フィルターのクリア

help in Kmeans modified clustring

1 回表示 (過去 30 日間)
Meriem Ben Kalia
Meriem Ben Kalia 2020 年 6 月 28 日
コメント済み: Image Analyst 2020 年 6 月 29 日
Dear experiences,
I am new in Matlab programmation. So I used Kmeans for found the barycenter of UAV with it set of users connected.
My problem I didn't know if this is code is correct or not.
I calculate the Matrix A end Eta in another Function which called "Matching". I use the HPPP and Monte-Carlo simulation to initialisation of the position of users and UAVs.
So in this code, I update the matrix of Association A if the user is associate with drone (A(i,j)==1) then I calculate the position of drone.
Can you help me pleaase and How I show the cluster
function [cluster,center] = Placement(H,B)
global xu yu
%initialisation
e=length(B);
k = e ;%cardinal de B^A
numP = 3 ; %nombre des UAVs
center = zeros(numP, 2);
Xmax=1000; %X entre 0 et Xmax
Ymax=1000; %Y entre 0 et Ymax
y=3;
U=5;
%% Choose k data points as initial centroids
xP = Xmax * rand(1,numP); % position des drones aleatoires
yP = Ymax * rand(1,numP); % position des drones aleatoires
UAVspoints = [xP; yP]; %coordonées des drones
%% Repeat until number of iteration is reached or barycenter is inchangeabale
% init cluster array
cluster=zeros(5,3); % to execute rapidly I supposed we have 5 users and 3 drones
max_iteration=5; % I chose littre number to obtain the result rapedaly
startingTime = tic;
% debut de programme Kmeans
res=0;
iteration=1;
while iteration < max_iteration || res~=1 % boucle pour la convergence de Kmean
fprintf('iteration = %d\n', iteration);
for j=1:e-1
[A,Eta]=Matching(H,B,xP(j),yP(j)); %update de Eta et Association par l'algorithme 1(Matching)
fprintf('j = %d\n', j);
c=0;
c=xP(j); %initialisation %% I take every point what I defined in UAVspoints
b=yP(j);
for i=1:U-1
if A(i,j)==1 && A(i+1,j)==1 % si un utilisateur est associer a une drone alor A(ij)=1
c(j) =i; %je veux obtenir les indices des utilisateurs associés pour chaque drone
% debut de recherche de barycentre (il faut drones prendre sa position au barycentre des utilisateurs connecté a lui )
xP(j)=(xP(j)+xu(i))/length(c);
yP(j)=(yP(j)+yu(i))/length(c);
xP(j+1)=(xP(j+1)+xu(i+1))/length(c);
yP(j+1)=(yP(j+1)+yu(i+1))/length(c);
end
% cette etape pour verifier que la drone est trouvé sa barycentre donc ses coordonnées ne changent pas
%(d'ou sortie de la boucle While)
if xP(j)~= yP(j+1) && yP(j)~=yP(j+1)
res=0;
else res =1;
end
end
center(k, :)=[xP(j); yP(j)];
L=length(c);
cluster(1:L,j) = c';
end
iteration = iteration + 1;
end
end
  5 件のコメント
Image Analyst
Image Analyst 2020 年 6 月 28 日
編集済み: Image Analyst 2020 年 6 月 28 日
You have a j loop inside another j loop, and the capitalization of center is not consistent -- Center is different than center. Plus you don't need semicolons after an end statement. I fixed those problems and attached it in case anyone else wants to give it a try. How long is it supposed to take? I ran it for several minutes and it never finished. I got up to iteration 12.
Meriem Ben Kalia
Meriem Ben Kalia 2020 年 6 月 28 日
It supposed to take 2000 iterations or until the positions of drones (UAVs in barycenter ) inchangables in evry cluster

サインインしてコメントする。

回答 (1 件)

Image Analyst
Image Analyst 2020 年 6 月 28 日
Hopefully this attached m-file will work for you. I have no idea what it does, and it take a long time per iteration, but at least it runs.
  2 件のコメント
Meriem Ben Kalia
Meriem Ben Kalia 2020 年 6 月 28 日
編集済み: Meriem Ben Kalia 2020 年 6 月 28 日
I saw it, it run but unfortunately that's not what I want. :( thank you for your help
Image Analyst
Image Analyst 2020 年 6 月 29 日
Well you wrote the program. I have no idea what it does, but since you do, go ahead and correct the remaining errors.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeIntroduction to Installation and Licensing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by