How to make a array from a loop?

조회 수: 3 (최근 30일)
Thanathip Boonmee
Thanathip Boonmee 2019년 11월 25일
댓글: M 2019년 11월 25일
for i = 1:1440
Z(i) = powerConsumption(i) - solarEnergyGenerated(i);
if (Z(i) < 0) && (j <1200) %Proceed if {Power consumption minus PV is less than 0} and {Battery level is less than 1200kWmin=20kWh}
j = -Z(i) + j; %Charging
elseif (Z(i) > 0) && (j>Z(i)) %Proceed if {Power consumption minus PV is more than 0} and {Battery level is more than Z(i)}
j = j - Z(i); %Discharging
I am trying to make a battery algorithm on when to charge and discharge. I am not sure how to make a array of 1440x1 from this loop.
I want to make this array to make a plot out of it.

답변 (1개)

M 2019년 11월 25일
편집: M 2019년 11월 25일
You can do something like:
nb = 1440;
j = zeros(1,nb);
Z = zeros(1,nb);
for i = 1 : nb
Z(i) = powerConsumption(i) - solarEnergyGenerated(i);
if i > 2
j(i) = j(i-1) - Z(i);
You are actally doing the same thing in your 2 conditions "if" and "else".
Then you can plot j and Z :
t = 1 : nb;
  댓글 수: 3
Turlough Hughes
Turlough Hughes 2019년 11월 25일
j = -Z(i) + j;
j = j - Z(i); % is also j = -Z(i) + j;
are equivalent calculations. So, as M pointed out, there is no need in that case for an if else to decide which of the above lines to implement.
M 2019년 11월 25일
I want j to be an array of 1440x1
j = zeros(1440,1)
defines a vector of size 1440 x 1.
Then access each element with j(k), with k = 1 , ... , 1440

댓글을 달려면 로그인하십시오.


Help CenterFile Exchange에서 Energy Storage에 대해 자세히 알아보기




Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by