File Exchange

image thumbnail

Structured Data Manipulation

version 1.3.0.0 (10.4 KB) by Emanuele Ruffaldi
"Structy" is an improved struct for uniform data supporting sort, label rename and units of measure.

1 Download

Updated 11 Feb 2010

View License

The "structy" class manages internally a large data matrix of rows x fields, and it logically maps this data to a set of fields that can be scalar values or vectors.

Features:
- efficient storage of data in single matrix
- units
- flexible referencing
- project
- resample of data by time stored in any field
- sorting by field
- rename of field, prefixing
- concatenation vertical or horizontal
- import/export to basic structure

Construction is easy: my = struct(data,{'field1','field2'});
Construction of vector: my = struct(data,{'field1','field2'},{1:3,4:5}); % field1 is data 1..3 and field2 is 4..5

Access is as in struct or more complex:
my.field1
my(1:10)
my(1:10).field1
my(1:10).field1(3) if field1 is a vector field

Data size is available as size(my) or size(my,'field')

Structy can be cat vertical or horizontal as:
[a,b] if a and b have not overlapping fields and same number of elements
[a;b] if a and b have same fields

Projection of data is possible using: project(my,{'field1','...'})
Data can be also sorted by given column
Fields can be renamed or modified with prefix using raname(my,oldfield,newfield) and addprefix(my,prefix)

Finally it is possible to perform simple interpolation using a field as a timefield data. All the other gets interpolated by interp1.

It can be stored on MAT file as struct by using asstruct and then constructing it again by this structure.

TimeSeries comparison: time entries can be duplicated, construction is simpler, but no events and simpler API at this stage

Cite As

Emanuele Ruffaldi (2020). Structured Data Manipulation (https://www.mathworks.com/matlabcentral/fileexchange/26409-structured-data-manipulation), MATLAB Central File Exchange. Retrieved .

Comments and Ratings (1)

I've made it when dataset was not available. I suggest using dataset right now.

Updates

1.3.0.0

Small bugfix in rename and addprefix

1.1.0.0

Added interpolation of data based on timefield
Added construction from asstruct representation
Bug fix for [] operator

MATLAB Release Compatibility
Created with R2008a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Tags Add Tags

@structy/