You are on page 1of 2

% Import CSV file skipping first two rows

data = readtable('weather.csv', 'HeaderLines', 2);

% Extract relevant columns


months = month2num(data.Month);
rainfall = data.Rainfall;
max_temp = data.MaxTemperature;
el_nino = data.ElNino;
la_nina = data.LaNina;

% Calculate average rainfall and temperature for each month using accumarray
%monthly_avg_rainfall = accumarray(months, rainfall, [], @mean);
%monthly_avg_temp = accumarray(months, max_temp, [], @mean);

% Plot average rainfall and temperatures for all 12 months


figure;
subplot(2, 1, 1);
bar(monthly_avg_rainfall);
title('Average Monthly Rainfall');
xlabel('Month');
ylabel('Rainfall (mm)');
xticks(1:12);

subplot(2, 1, 2);
bar(monthly_avg_temp);
title('Average Monthly Temperature');
xlabel('Month');
ylabel('Temperature (C)');
xticks(1:12);

% Melbourne's yearly average max temperature and monthly rainfall


melbourne_avg_max_temp = mean(max_temp);
melbourne_monthly_avg_rainfall = mean(rainfall);

fprintf('Melbourne''s yearly average max temperature: %.2f°C\n',


melbourne_avg_max_temp);
fprintf('Melbourne''s monthly average rainfall: %.2f mm\n',
melbourne_monthly_avg_rainfall);

% El Niño and La Niña periods


avg_rainfall_el_nino = mean(rainfall(el_nino == 1));
avg_rainfall_la_nina = mean(rainfall(la_nina == 1));

% General average monthly rainfall


general_avg_rainfall = mean(rainfall);

fprintf('Average monthly rainfall during El Niño: %.2f mm\n',


avg_rainfall_el_nino);
fprintf('Average monthly rainfall during La Niña: %.2f mm\n',
avg_rainfall_la_nina);
fprintf('General average monthly rainfall: %.2f mm\n', general_avg_rainfall);

% Function to convert month names to numeric values


function monthNum = month2num(monthName)
months = {'January', 'February', 'March', 'April', 'May', 'June', 'July',
'August', 'September', 'October', 'November', 'December'};
monthNum = zeros(size(monthName));
for i = 1:numel(months)
monthNum(strcmp(monthName, months{i})) = i;
end
end

You might also like