Why am I getting an indices error?
Mostra commenti meno recenti
clc;
clear;
data = readtable('A_minute.xlsx');
% step 2: store date and time data as a datenum (DaT) and then convert to datetime (t)
% summer: t(2:102241)
DaT = datenum(data.Var1);
t = datetime(DaT, 'ConvertFrom','datenum');
TimeofDay = timeofday(t(2:102241));
TimeofDay = ceil(TimeofDay,'minute');
[UniqueTimeSteps,~,pos] = unique(TimeofDay);
UniqueTimeSteps = UniqueTimeSteps(2:end);
pos =pos -1;
pos(pos==0) = 24;
% step 3: store the other columns from the excel data file
AptA = data(:,4);
AptA = table2array(AptA);
AptA = AptA(1:102241);
% step 4: for loop extracting the hour and indexing it through for weekday versus weekend
Consumption_Weekday = zeros(1,length(UniqueTimeSteps));
Consumption_Weekend = zeros(1,length(UniqueTimeSteps));
wd = weekday(t) > 1 & weekday(t) < 7;
for i = 1:length(UniqueTimeSteps)
idx = (pos == i & wd);
Consumption_Weekday(i) = mean(AptA(idx));
idx = (pos == i & (~wd));
Consumption_Weekend(i) = mean(AptA(idx));
end
MinuteValue= UniqueTimeSteps;
% step 5: plot
figureA = figure;
plot(MinuteValue,Consumption_Weekday,'-b');
hold on
plot(MinuteValue,Consumption_Weekend,'-r');
ylim([0.2 0.7]);
xlabel('Time'), ylabel('Electric Demand (kW)'), ...
title('Unit A - Average Aggregated HVAC Electric Demand (kW)'), ...
legend('Weekdays','Weekends')
Matrix dimensions must agree.
Error in A_minute_wk (line 30)
idx = (pos == i & wd);
2 Commenti
Walter Roberson
il 8 Giu 2020
You did not indicate which line was causing the problem, but observe that
idx = (A_t.Minute == MinValue & weekday(A_t) > 1 & weekday(A_t) < 7);
could potentially match several entries, so AptAs(idx) might be multiple values (or no values?), but you expect it to be a scalar.
Fatemah Ebrahim
il 8 Giu 2020
Risposta accettata
Più risposte (0)
Categorie
Scopri di più su Creating and Concatenating Matrices 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!