let m be in [1, ∞); // Note m is usually 2. m controls the level of fuzziness. initialize the means (oac centroids or prototypes) vector C=[cj]; while the change is not insignificant Update membership matrix U=[uij] with C: for point i and cluster j, uij = 1 / (Σk((∥xi-cj∥ / ∥xi-ck∥)2/(m-1)) Update C with U: for cluster j, cj = Σi(uijm · xi) / Σi(uijm);
draw()
.