Clustering by kmean?

Technical Source
2 min readMay 24, 2022

--

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ñ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 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

--

--

Technical Source
Technical Source

Written by Technical Source

Simple! That is me, a simple person. I am passionate about knowledge and reading. That’s why I have decided to write and share a bit of my life and thoughts to.

No responses yet