Programmering
MatLab Cluster analysis HASTER
Har følgende kode, og opgaven er vedhæftet. Der er et eller andet helt galt, men jeg ved simpelthen ikke hvad. Nogle der er super seje til MatLab?
function clusterAssignments = clusterAnalysis(reflectance)
a=reflectance(1:2:end);
b=reflectance(2:2:end);
ma=(mean(a)+mean(b))/2;
m1=reflectance(reflectance<=ma);
m2=reflectance(reflectance>ma);
i=0;
maa=(mean(m1)+mean(m2))/2;
while m1>maa
m1=m2
maa=(mean(m1)+mean(m2))/2;
end
d=ismember(reflectance, m1);
ans=d+1
end
Svar #1
16. april 2015 af Keal (Slettet)
Et hurtigt bud
function clusterAssignments = clusterAnalysis(reflectance)
% Number of observations
n = length(reflectance);
% Initial cluster assignments
Z = ones(n,1);
Z(2:2:end) = 2;Z_old = zeros(n,1);
while ~isequal(Z_old,Z) % While assignments don't change
% Update Z_old
Z_old = Z;
% Compute mean values
m = [mean(reflectance(Z==1)), mean(reflectance(Z==2))];
% Compute distances from each obs to the means
D = [(reflectance - m(1)).^2; (reflectance - m(2)).^2];
% Update cluster assignments
[~,Z] = min(D);
end
% Set the cluster assignments
clusterAssignments = Z;
end
Skriv et svar til: MatLab Cluster analysis HASTER
Du skal være logget ind, for at skrive et svar til dette spørgsmål. Klik her for at logge ind.
Har du ikke en bruger på Studieportalen.dk?
Klik her for at oprette en bruger.