calculation of time series.

3 次查看(过去 30 天)
SONI SONI
SONI SONI 2015-11-6
评论: SONI SONI 2015-11-9
I have monthly (420 months) time series data of temperature . I need to calculate a another time series based on following formula:
x = T(month,i) - T(month,i-1)
where, T(month,i) is temperature of current month
T(month,i-1) is temperature of previous month
how to create a time series of x ?

回答(3 个)

Thorsten
Thorsten 2015-11-6
编辑:Thorsten 2015-11-6
diffdata = diff(ts.Data)
difftime = ts.Time(1:end-1)+diff(ts.Time)/2;
tsdiff = timeseries(diffdata, difftime)

Image Analyst
Image Analyst 2015-11-6
If the second index is the month number, what does the first index represent? Have you tried
x = diff(T(month,:))?
  2 个评论
SONI SONI
SONI SONI 2015-11-6
both represents month. month,i is number of month. we can write x = T(i) - T(i-1)
suppose i is current month (January) and i-1 is previous month (December)
Image Analyst
Image Analyst 2015-11-6
But originally you said T was a 2-D array - it had two indexes: for a row and a column. Now you're saying T is a 1D array taking only one index. Totally inconsistent. Which is it?????

请先登录,再进行评论。


SONI SONI
SONI SONI 2015-11-9
Temperature is 2-D array. I am trying to say I have a arrays T (time series of temperature January to December 1*12). now I want to substrate temperature values from current month to previous month. for example feb - jan, mar - feb....
But I have solved this problem
x(i) = T(i) - T(i-1)
  2 个评论
Image Analyst
Image Analyst 2015-11-9
Now you're back to a 1-D array, NOT a 2-D array despite what you say, because it has only 1 index.
And your code just does diff() which is the same as what I gave you except in a function instead of a for loop.
I give up.
SONI SONI
SONI SONI 2015-11-9
Thank you sir, for the interest to help me.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Multidimensional Arrays 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by