Is there a way to initialise an array automatically inside while loop?
2 ビュー (過去 30 日間)
古いコメントを表示
Abdulatif Alabdulatif
2014 年 11 月 1 日
コメント済み: Abdulatif Alabdulatif
2014 年 11 月 3 日
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 件のコメント
採用された回答
Geoff Hayes
2014 年 11 月 1 日
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 件のコメント
Geoff Hayes
2014 年 11 月 2 日
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
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Shifting and Sorting Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!