Is there a way to initialise an array automatically inside while loop?
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Abdulatif Alabdulatif
il 1 Nov 2014
Commentato: Abdulatif Alabdulatif
il 3 Nov 2014
Hi all,
I am working on build clustering algorithm (Fixed-width)clustering. In every iteration inside while loop, some points need to be store in an array to use them in final plot. However, I do not know how can I store points that are belonge to a specific cluster in new array in every iteration. The target is showing all points with their clusters in a single plot.
Thank you
0 Commenti
Risposta accettata
Geoff Hayes
il 1 Nov 2014
Abdulatif - if you just want to add some to an array at each iteration of a loop (in your case, a while loop), then you could try the following
% initialize the cluster points array to be empty
clusterPoints = [];
while true
% do some stuff
% add (x,y) to clusterPoints
clusterPoints = [clusterPoints [x;y] ];
end
In the above, we assume that each point is 2D only. Once we break out of the while loop, clusterPoints will be a 2xm vector where m is the number of points that we have added to the array. The first row will correspond to all x's, and the second row will correspond to all y's.
5 Commenti
Geoff Hayes
il 2 Nov 2014
If you wish to plot the data by cluster, then you could try
figure;
hold all; % use hold all to plot clusters in different colours
for k=1:length(clusterPoints)
data = clusterPoints{k};
if ~isempty(data)
plot3(data(:,1),data(:,2),data(:,3),'o');
end
end
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Shifting and Sorting Matrices in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!