FUZZY C-MEANS: Fuzzy c-means algorithm for unsupervised classification c = fcms(x,Nc,epochs,pdfx) Inputs x: Input data matrix with points by columns (RxQ) Nc: Number of clusters (scalar) epochs: (Optional) Number of iterations (Default = 100) expo: (Optional) Exponent in the original Bezdek algorithm (Default = 2) pdfx: (Optional) Probability density function values associated to each input data point (1xQ) (Default = uniform) Outputs c: Matrix with the centers by columns (RxNc) Calls c = fcms(x,Nc) c = fcms(x,Nc,epochs) c = fcms(x,Nc,epochs,expo) c = fcms(x,Nc,epochs,expo,pdfx) This function implements the Bezdek's fuzzy c-means algorithm. Additionally, a probability value can be associated to each data sample to generate a distribution of points with a given probability density function. NOTE: The algorithm performs well in all dimensions if data has a cluster structure (multimodality). However, when dimension is high, and the number of clusters is lower than the number of prototypes the algorithm places all the prototypes in the two clusters. The algorithm does not achieve a magnification factor proportional to the density of the data. This nice property only occurs for low dimensions (below 5). By selecting an exponent closer to 1, this property is more closely achieves for high dimensions, but still fails for data dimensions above 20D.