Nehmen wir an, Sie die Daten in als Zahlenwerte lesen
Jetzt haben Sie einige Matrix wie so:
data = [20130928 0 21.1 50.0
20130928 600 22.2 50.3
20130928 1200 23.3 50.6
20130928 1800 24.2 50.6];
Um die ersten beiden Spalten zu datetime
Werte zu umwandeln, könnten wir tun dies:
% Concatenate first two columns, including making all times 4 digits by 0 padding
fulltime = [num2str(data(:,1)), num2str(data(:,2), '%.4u')]
% Use datetime to convert (cell) times to dates with given format
dates = datetime(cellstr(fulltime),'inputformat', 'yyyyMMddHHmm');
>> dates = 28-Sep-2013 00:00:00
28-Sep-2013 06:00:00
28-Sep-2013 12:00:00
28-Sep-2013 18:00:00
Jetzt w e kann leicht interpolieren. Erste create an array of times wir verwenden möchten:
% Data value every 30 mins
interpdates = dates(1):hours(0.5):dates(end)
Dann sehr viel Danke
interpolateddata = interp1(dates, data(:,3:4), interpdates);
>> interpolateddata = 21.1000 50.0000
21.1917 50.0250
21.2833 50.0500
21.3750 50.0750
...
24.1250 50.6000
24.2000 50.6000
interp1
verwenden. es war sehr nützlich! – AviadBetrachten Sie die Antwort Kennzeichnung als angenommen, wenn es Ihnen geholfen – Wolfie
ich glücklich sein würde, es zu tun. Wie wird es gemacht? – Aviad