Clustering by kmean?
Hi Everybody, I’m doing an algorithm that allow me find the typical day and/or week of solar irradiance from a spreadsheet wiht hourly irradiation values from one year.
I’m having some issues with my algorithm, this should do the following: 1-read a spreadsheet of excel 2-calculate the mean of column “f” 3-calculate the kmean 4-graph a point of the mean of colunm “f” 5-graph all the values in column “f”
The point “3” does not work, because it send me a message of error.
This is the error message than Matlab send me, Error using kmeans (line 262) X must have more rows than the number of clusters. This is very strange, so that if i click over it open another script of MATLAB, if you can note my script does not has 262 code lines.
Error in Untitled4 (line 12) idx=kmeans(8759, 52);
%Algoritmo de clusterización kmeans para determinar de un año %una semana tipica de consumo clear all close all
%carga la hoja de datos f=xlsread(‘IrradBilbo2.xlsx’, 1, ‘f4:f8763’); %calculo de promedio y=mean(f);
%clausterización por kmean idx=kmeans(8759, 52);
%graficación figure(1) grid on hold on ylabel(‘Potencia [Wm2]’); xlabel(‘meses del año’); title (‘Radiación Anual’);
plot(f); %grafica los 8763 valores de irradiacion del año
figure(2) grid on hold on ylabel(‘Potencia [Wm2]’); xlabel(‘meses del año’); title (‘Radiación Anual’); plot(y,’*’);
%grafica el promedio de los 8763 valores de irradiación del año
%escritura de valores fprintf(‘promedio de irradiación anual %f/n:’, y);
% clear all
close all%carga la hoja de datos
f=xlsread('IrradBilbo2.xlsx', 1, 'f4:f8763');
%calculo de promedio
y=mean(f); %clausterización por kmean
idx=kmeans(8759, 52);
%graficación
figure(1)
grid on
hold on
ylabel('Potencia [Wm2]');
xlabel('meses del año');
title ('Radiación Anual');
plot(f); %grafica los 8763 valores de irradiacion del añofigure(2)
grid on
hold on
ylabel('Potencia [Wm2]');
xlabel('meses del año');
title ('Radiación Anual');
plot(y,'*'); %grafica el promedio de los 8763 valores de irradiacion del año%escritura de valores
fprintf('promedio de irradiación anual %f/n:', y);
NOTE:-
Matlabsolutions.com provide latest MatLab Homework Help,MatLab Assignment Help for students, engineers and researchers in Multiple Branches like ECE, EEE, CSE, Mechanical, Civil with 100% output.Matlab Code for B.E, B.Tech,M.E,M.Tech, Ph.D. Scholars with 100% privacy guaranteed. Get MATLAB projects with source code for your learning and research.
the kmeans function.
IDX = kmeans(X,K)
The first input (X) should be an N-by-P data matrix, where N is the number of instances to cluster and P is the number of features. The second input (K) is the number of clusters you desire. The output (IDX) will be an N-by-1 vector of cluster indices for each data point.
In your script, you call
idx = kmeans(8759,52);
The first input is the problem. It is a scalar! In other words, you have only 1 data point with 1 feature. It is impossible to cluster this “data” into 52 clusters.
SEE COMPLETE ANSWER CLICK THE LINK