问题
I made this program were the user can type in a year between 2009 and 2011 and get snow depth and air temperature data for the chosen year displayed on a graph.
I have one xls file for the temperature for each day from day 1 to day 365. I also have another xls file for snow depth from day 1 to day 212. So some days they didn't bother to measure snow depth because it was summer anyways. Between 30. april to 1. october they didn't measure snow depth. I want to add 153 zeroes with code between 30. april and 1. oct so it adds up to 365 days.
day 121 = 30. april
Download Air temp xls: https://dl.dropbox.com/u/11241083/airtemp2009_2011.xls
Download Snow depth xls: https://dl.dropbox.com/u/11241083/snow2009_2011.xls
Here's the code so far:
chosenyear = input('Type in year: ');
snowdepth = xlsread('snow2009_2011.xls');
snowdepth2009 = snowdepth(:,1);
snowdepth2010 = snowdepth(:,2);
snowdepth2011 = snowdepth(:,3);
airtemp = xlsread('airtemp2009_2011.xls');
airtemp2009 = airtemp(:,1);
airtemp2010 = airtemp(:,2);
airtemp2011 = airtemp(:,3);
if chosenyear == 2009
figure(1);
plot(snowdepth2009, 'b');
title(['Snowdepth/airtemp ' num2str(chosenyear)]);
xlabel('Days/months');
ylabel('data');
grid on
datetick('x','m');
hold on
plot(airtemp2009, 'r');
legend('snow depth in cm','air temp in Celsius');
elseif chosenyear == 2010
figure(2);
plot(snowdepth2010, 'b');
title(['Snowdepth/airtemp ' num2str(chosenyear)]);
xlabel('Days/months');
ylabel('data');
grid on
datetick('x','m');
hold on
plot(airtemp2010, 'r');
legend('snow depth in cm','air temp in Celsius');
elseif chosenyear == 2011
figure(3);
plot(snowdepth2011, 'b');
title(['Snowdepth/airtemp ' num2str(chosenyear)]);
xlabel('Days/months');
ylabel('data');
grid on
datetick('x','m');
hold on
plot(airtemp2011, 'r');
legend('snow depth in cm','air temp in Celsius');
else
disp('NB! Type in 2009, 2010 or 2011');
filename.m
end
回答1:
Try this,
snowDepth_full = zeros(365,3); % make a temporary variable to hold everything
snowDepth_full(1:121,:) = snowDepth(1:121,:); % First 121 days up to april 30
snowDepth_full(end-90,:) = snowDepth(122:end,:); % Last 91 days from oct 1 on
snowDepth = snowDepth_full; % Copy it back
Then as before...
snowdepth2009 = snowdepth(:,1);
snowdepth2010 = snowdepth(:,2);
snowdepth2011 = snowdepth(:,3);
...
来源:https://stackoverflow.com/questions/13534897/how-to-add-rows-of-zeroes-in-matrices-excel-spreadsheet-with-code-matlab