Programmering

MatLab Cluster analysis HASTER

16. april 2015 af AlmostDoneO

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

Vedhæftet fil: Exercise (Matlab)-13.pdf

Brugbart svar (0)

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


Svar #2
16. april 2015 af AlmostDoneO

Keal - You're a life saver :D


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.