MATLAB Answers

start for loop from non zero value

19 views (last 30 days)
Hi I am trying to run the code below for "number_panels" going from 1000 to 2000 with a step interval of 500. The below doesn't seem to work and was wondering if anyone knows how to modify this to get the required
my code is
number_of_days = 2;
for number_panels = 1000:500:2000 % range of PV panel units examined
for number_turbines = 0:1:3 % range of wind turbine units examined
for h=1:24 %# hours
for d = 1:number_of_days %# which day
n = h + 24*(d-1);
% hourly_deficit_1(...,..., h, d)= Demand(n)-(PV_supply(n)... %
hourly_deficit(number_panels + 1, number_turbines + 1, h,d) = hourly_annual_demand(n) - (hourly_annual_PV(n)*number_panels) - (hourly_annual_WT(n)*number_turbines);% hourly power deficit (RES supply with demand)
if hourly_deficit(number_panels + 1, number_turbines + 1, h,d)< 0 % zero out negative hourly deficit values (this is power surplus from RES)
hourly_deficit(number_panels + 1, number_turbines + 1, h,d) = 0;
end
As it stands i am getting size(hourly_deficit) = 2001 4 24 2
whereas I am expecting 3 4 24 2

  0 Comments

Sign in to comment.

Accepted Answer

Doug Hull
Doug Hull on 23 Jul 2012
look at the value of number_panels on the very first time through the loops:
hourly_deficit(number_panels + 1, number_turbines + 1, h,d) =
or
hourly_deficit(1000 + 1), ...)
and on last time through:
hourly_defisit(2000 + 1), ...)
Similar things happen on the other indicies.
Maybe you want to have a iii = 0; outside the loop, and then
iii = iii+1;
inside the outer loop and index with it?
hourly_deficit(iii,...)

  0 Comments

Sign in to comment.

More Answers (1)

Walter Roberson
Walter Roberson on 23 Jul 2012
panel_vals = 1000:500:2000;
for panel_number = 1 : length(panel_vals)
number_panels = panel_vals(panel_number);
[...]
hourly_deficit(panel_number, number_turbines + 1, h,d) = hourly_annual_demand(n) - (hourly_annual_PV(n)*number_panels) - (hourly_annual_WT(n)*number_turbines)
I am guessing here that the multiplication by number_panels should be the 1000, 1500, etc., the value rather than the index.

  0 Comments

Sign in to comment.

Sign in to answer this question.

Tags


Translated by