필터 지우기
필터 지우기

Is there a way to initialise an array automatically inside while loop?

조회 수: 1 (최근 30일)
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

채택된 답변

Geoff Hayes
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
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 CenterFile Exchange에서 Data Type Identification에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by