Grouping users into 3 groups using for loop and if statements
Mostra commenti meno recenti
Hello, I am trying to group 75 different users into 3 groups by usage of electricity : Consumers, Prosumers and Producers. [ Prosumer = Consumption + Production].
The code I am writing is as follows:
load syncedData.mat %loading data - 3 tables (EdSynced, EgSynced and PSynced)
sum(EdSynced{:,2}) % this is how I get the demand (consumption) data
sum(EgSynced{:,2}) % this is how I get the generation data
% for pure consumers the EgSynced variable is full of zeros, so the sum is
% zero. And the same applies for pure producers vice versa.
class_code = zeros(75,3) % creating a matrix for further classification - 75 users and 3 groups
for i= 2:76 % in EdSynced and EgSynced these users are variables from 2 to 76 (75 various users)
for k=1:75 %
consume = sum(EdSynced{:,i});
generates = sum(EgSynced{:,i});
if consume > 0 && generates >0
class_code(k,1) = 1;
elseif consume ==0 && generates >0
class_code(k,2) = 1;
else
class_code(k,3) = 1;
end
end
end
After that I convert the matrix into table:
classes = ["Prosumer","Producer","Consumer"];
class_code = array2table(class_code,'VariableNames',classes)
But, unfortunately my code doesn't work properly. Could you please suggest a fix for it?
It outputs (the first segment of code) the matrix full of ones.
Thank you very much in advance!
1 Commento
Benjamin Thompson
il 13 Giu 2022
Can your post the input MAT file also?
Risposta accettata
Più risposte (0)
Categorie
Scopri di più su Loops and Conditional Statements in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!