Code covered by the BSD License  

Highlights from
Measures of Analysis of Time Series toolkit (MATS)

4.8 | 6 ratings Rate this file 99 Downloads (last 30 days) File Size: 3.41 MB File ID: #27561 Version: 1.0
image thumbnail

Measures of Analysis of Time Series toolkit (MATS)



10 May 2010 (Updated )

MATS computes many measures of scalar time series analysis on many time series in one go.

| Watch this File

File Information

The Measures of Analysis of Time Series (MATS) toolkit computes a number of different measures of analysis of scalar time series (linear, nonlinear and other statistical measures). It also contains pre-processing tools (transformations and standardizations), data splitting facility, resampled data generation, and visualization facilities for the time series and the computed measures. The strength of the MATS toolkit is the simultaneous operation on both multiple time series and multiple measures, allowing a range of measure specific parameters to be set as well. Help for any action is provided in html.
A main feature of MATS is that it keeps track of two lists: the time series list containing the set of scalar time series to be analyzed, and the measure list containing the values of the selected measures computed on the time series in the current time series list. The time series list is dynamic so that time series can be deleted from the list and new time series can be added to the list by selecting specific data-related operations, i.e. loading time series files, standardizing or segmenting time series from the list, or generating resampled (surrogate) time series (left part of the main menu window). A number of various measures of different types (linear, nonlinear, others) can be selected. The selected measures are then computed on all the time series in the current time series list and the measure values are stored in the current measure list, where for each measure and for each combination of its parameter values a unique name is assigned (right part of the main menu window). The computed measures can be viewed in different ways by selecting measure names from the measure list and time series names from the time series list associated to the computed measures, e.g. plots of measures versus segment or surrogate time series index, or measures versus one or two varying parameters (2D and 3D plot). The visualization facility for the measure vs surrogate time series index contains also parametric and nonparametric tests.
The user can select many different measures, as well as measure specific parameters, compute them on different time series, and view the results on the different measures and time series. It should be noted that the computation for each selected measure can be slow when a large number of time series are selected or the length of the time series is large (or both). Also, some measures, such as the measure of the local linear model and the measure of the correlation dimension, require long computation time.


K D Tree inspired this file.

Required Products Signal Processing Toolbox
Statistics and Machine Learning Toolbox
System Identification Toolbox
MATLAB release MATLAB 7.6 (R2008a)
Other requirements matlab version 6.5 or later. Some operations may be slow depending on system memory, e.g. the computation of correlation dimension may give stop signaling "out-of-memory" if the time series is very large (as tested at PC Core2Duo 3.17GHz and 2GB RAM).
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (23)
28 Jan 2016 Mark Schroeder

Hi Dimitris,
Thanks for the work that you've done on creating MATS. I've been able to run some of the Measures successfully (e.g. Linear and NonLinear correlation) but the Complexity measures keep outputting errors that I can't figure out. For example, running ApproxEntr gives the error below. Have you seen this before? Something that I'm doing wrong perhaps?

I'm running Matlab R2012a 7.14. Any help would be appreciated. Thanks!

Attempt to execute SCRIPT kdtreeidx as a function:

Error in ApproximateEntropy (line 82)

Error in guiselectmeasures>pushbutton11_Callback (line 2002)
apenT = ApproximateEntropy(xV,par1V,par2V,par3V,par4V);

Error in gui_mainfcn (line 96)

Error in guiselectmeasures (line 75)
gui_mainfcn(gui_State, varargin{:});

Error in

Error using waitfor
Error while evaluating uicontrol Callback

28 Jan 2016 Mark Schroeder  
20 Jun 2015 Degang

Degang (view profile)

Mac version of compiled kdtree.m is needed

Comment only
23 Oct 2014 Trudie

Trudie (view profile)

I am trying to run the GUI to generate surrogate data right now but after I load the data and click Resampled time series, the Resampling Types box doesn’t populate and only shows greyed out boxes for Degree of polynomial approximation, Order of autoregressive model and Order of autoregressive model (repeated). The only box that is not grayed out and available is Number of resampled time series. My colleague also just started running the GUI with the exact same data file and we found that the Resampling Types box populated with all the methods that were available (i.e. FT, AAFT etc.). We are using the exact same Matlab version, data files and followed the same steps so I have no idea how to get it to populate. Do you know what might be causing this error?

Comment only
23 Nov 2012 Dimitris Kugiumtzis

Hi Maximos,
My immediate reply is that for the k-d-tree data structure and nearest neighbors search we turned now to the faster routines of ann. We have not yet implemented them in MATS, but we will soon come with a new version incorporating this. Thanks for the link anyway. Unfortunately, we do not use MAC therefore we have not compiled the C-programs for MACOSX. We will try to find a MAC machine and do it (no promise this will be done immediately).

Comment only
23 Nov 2012 Maximos Kaliakatsos-Papakostas

Concerning my previous post about the source code of the kdtree functions:

I found these files on an other submission

where one can find the C source files and compile them for hers/his system. To compile, however, one minor modification of the .h file is required, as stated in a comment on the aforementioned page.

All the best,

Comment only
19 Nov 2012 Maximos Kaliakatsos-Papakostas

This contribution encompasses more than I would ever need for time series analysis.

There is however some kind of incompatibility with the operating system I use, MACOSX. Specifically the mex files are not compiled for the architecture of my system's processor (extensions should be .mexmaci64).

Would it be possible to provide the C source files, so that the users could compile them themselves for their systems' architectures? If not, would it be possible to provide mex files for more processor architectures (like for example, MACI64)?

Thank you in advance,

07 Apr 2012 Dimitris Kugiumtzis

Hi Tolga,
MATS does not contain a function "gettype.m". I also do not know CeeGraph, so I cannot help you in this.

Comment only
07 Apr 2012 Dimitris Kugiumtzis

Hi Thomas,
1. You are correct. If a user loads a file with more one dot, it is treated as a plain text file containing a data matrix. We could not have made the assumption you mention (get the suffix after the last dot). Our experience and practice is to use just one dot, therefore we did not bother to check different possibilities with multiple dots. Maybe this will be done in a future version.
2. I now realized that we changed the function guiread.m but not uploaded it. In the updated function this issue was treated. I will make sure it is updated now.

Comment only
05 Apr 2012 Tolga Ozkurt

Hi, I noticed that the function "gettype.m" can get the header information for CeeGraph EEG data (.EEG BLSC format) - however I couldn't achıeve to read the data afterwards. I'd be grateful if you could suggest me a way from MATS toolbox to do so (which parameters? and which m file?). Thanks.

Comment only
23 Mar 2012 Thomas

Thomas (view profile)

Hi Dimitris!

All the following concerns the function function pushbutton1_Callback(hObject, eventdata, handles) of the file guiread.m

Add 1.) Your using this line:
ii = find(fileC{i,1}=='.');
to get the index(es) of dots in the filename, and then this line:
suffixS = fileC{i,1}(ii+1:end);
to get the suffix. If a filename contains more than one dot, as far as I know convention is to take the last dot for splitting between filename and extension (since none of the commonly known extensions contain dots) This codeline however takes the first dot for splitting. Therefore this will not correctly detect edf and xls files and just use the matlab load function for everything - this line:

Add 2.) You use this line:
to save the files content in your variables for further processing. This will only work if A) there are multiple variables in the .mat file which will be loaded by matlab into a cell array of the filename, or if B) if there is only a single variable and it has the same name as the filename minus the extension.

Comment only
22 Mar 2012 Dimitris Kugiumtzis

Hi Thomas,

For 1), I see no problem with dots in the data filename. However, I admit that we have not concentrated on the form of the path and filename. We found the bug that MATS cannot read a path having spaces.

For 2), when selecting a .mat file, MATS lists all the columns of the one or two dimensional matrix variables in the mat-file. If the mat-file contains variables of other types, these will be ignored. See also text message under the field "Running messages" in the window "Load Time Series".

Comment only
20 Mar 2012 Thomas

Thomas (view profile)

You're help file on loading files (MATS/helpfiles/LoadTimeSeries.htm) should state the following restrictions:

1.) The filename of the file loaded is only allowed to contain exactly one "." between the name and the extension

2.) If one loads a .mat file, the variable name one wants to use from this mat file needs to be exactly the same name as the file (without the ".mat" extension).

Comment only
13 Mar 2012 Dimitris Kugiumtzis

Hi Mohamed Aboamer,
Please read the web-supported help document for the measure you want to use. There is more explanation there than in the help text at the head of the Matlab function.

Comment only
13 Mar 2012 Mohamed Aboamer

Dear ---,
I'm tried to calculate Correlation Dimension but i didn't know the values of:


where, time series "xV" length is 5537 point "one column array"

Comment only
06 Jun 2011 Dimitris Kugiumtzis

Hi Matthew,
Thank you for your comment. The effort was not directed on making the code user-friendly, but rather the GUI itself. MATS is based on a compilation of codes developed over a rather long period for personal use. The idea was to deliver a product for end-use without requiring any interference with matlab codes. As for the requirement of moving to the MATS directory before launching MATS, certainly this can be improved, but we did not consider it as a burden for the user.

Comment only
04 Jun 2011 Matthew

This a an extensive GUI for the analysis of time series measures. Thanks for your contribution to the FEX.

However, I did not find the code... how should I put this... user friendly. For example, the frequent (and unneeded) use of eval statements; and that the user is required to run the GUI from *a particular directory* for certain links to work correctly.

22 May 2011 Min Gan  
22 Apr 2011 ?

? (view profile)

08 Mar 2011 Dimitris Kugiumtzis

Hi, j gor,
There is no predefined range of expected values for bicorrelation (other than the interval [-1,1]) and cumulative bicorrelation. You can still contrast your value to expected values (i.e. distribution of the measure) under some null hypothesis, e.g. independent and identical distributed data (iid). To do this, you can compare the value of the measures computed on your time series with the values you get from appropriate surrogate data (see the facility for resampling). Note however that bicorrelation has much larger variance than, say, Pearson autocorrelation.

Comment only
05 Mar 2011 henry gorx

Hi, I tested the function Bicorrelation(xV,tauV,flag), how I must to interpret the results? for example, bicV=-0.18738 and cumbicV=0.70683. Many thanks for your help.

Comment only
22 Dec 2010 Dimitris Kugiumtzis

Dear Yubaraj,

You probably run an older matlab version than 7.1. You should first run the matlab function "changeallfig", so that "new" gui-functions can be run by "old" matlab versions. The following text with instructions about this action is taken from the README file of the MATS packet.

MATS runs as is with matlab version 7.1 or later. For those who have an older matlab version, they should first run the function "changeallfig" giving as input variable the full path of the MATS directory. This function updates all files of .fig type in order to be run by older matlab versions.


Comment only
21 Dec 2010 Yubaraj

I get the following error when i tried running the measures

Error in ==> gui_mainfcn>local_openfig at 216
gui_hFigure = openfig(name, singleton, 'auto');

Error in ==> gui_mainfcn at 94
gui_hFigure = local_openfig(gui_State.gui_Name, gui_SingletonOpt);

Error in ==> guiselectmeasures at 75
gui_mainfcn(gui_State, varargin{:});

Error in ==> MATS>pushbutton6_Callback at 222

Error in ==> gui_mainfcn at 75

Error in ==> MATS at 75
gui_mainfcn(gui_State, varargin{:});

??? Error while evaluating uicontrol Callback.

Comment only
14 May 2010 1.1

An update of the text of Description has been made, stressing specifically the components of MATS and including the reference, where the toolkit is presented.

Contact us