MATLAB: Convert year data to month (40 years = 480 months) in rows

arrayMATLAB

Hi everyone!
I'm doing a research using Matlab and today it is my first month using it. However, I can't figure out how to solve my problem.
I have the estimate population for 40 years. The demand of water is calculated multiplying the population by the Galons per day. Each year's demand should by divided by 12 months which is multiplied for a factor.
For example:
Gallon per Day: 20;
Year: 2010...2040
Population: 500
Demand: 500 * 20 (Demand each year)
After this I should divide each year demand to 12 months and multiply by the month factor.
Ex:
Jan: Total year demand * 0.2 Feb: Total year demand * 0.8 … Dec: Total year demand * 0 —
After all calculations I should have an Array with 480 rows (40 years * 12 months) with every month value.
Ex:
Jan
.
.
Dez
Jan
.
The first thing that came to my mind is create a zeros(480,1) and replace it by the values.
So my question is, would someone just give me the way I should start? I don't know how to put all this answers in the same column.

Best Answer

Why not represent the results in a 40 by 12 matrix instead? Each row of the matrix would represent the consumption for the 12 months in the year. Here is how you would do this, I've made up some numbers for the sake of illustration :
population = (1:40)'; % 40 by 1 array
factor = (0.1:0.1:1.2)'; %12 by 1 array
demandperhead = (1:40)'; %You can replace this by a scalar
...if the demand is constant with year
yearlycontribution = (demandperhead .* population)/12 * factor';
%If you still would prefer an array format
yearlycontribution_array = reshape(yearlycontribution',1,480);
Related Question