manpagez: man pages & more
info mathgl_en
Home | html | info | man
[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6.3 Data resizing

MGL command: new DAT [nx=1 ny=1 nz=1]
Method on mglData: void Create (int mx, int my=1, int mz=1)
C function: void mgl_data_create (HMDT dat, int mx, int my, int mz)

Creates or recreates the array with specified size and fills it by zero. This function does nothing if one of parameters mx, my, mz is zero or negative.

MGL command: rearrange dat mx [my=0 mz=0]
Method on mglData: void Rearrange (int mx, int my=0, int mz=0)
C function: void mgl_data_rearrange (HMDT dat, int mx, int my, int mz)

Rearrange dimensions without changing data array so that resulting sizes should be mx*my*mz < nx*ny*nz. If some of parameter my or mz are zero then it will be selected to optimal fill of data array. For example, if my=0 then it will be change to my=nx*ny*nz/mx and mz will be 1.

MGL command: transpose dat ['dim'='yxz']
Method on mglData: void Transpose (const char *dim="yx")
C function: void mgl_data_transpose (const char *dim)

Transposes (shift order of) dimensions of the data. New order of dimensions is specified in string dim. This function can be useful also after reading of one-dimensional data.

MGL command: extend dat n1 [n2=0]
Method on mglData: void Extend (int n1, int n2=0)
C function: void mgl_data_extend (HMDT dat, int n1, int n2)

Increase the dimensions of the data by inserting new (|n1|+1)-th slices after (for n1>0) or before (for n1<0) of existed one. It is possible to insert 2 dimensions simultaneously for 1d data by using parameter n2. Data to new slices is copy from existed one. For example, for n1>0 new array will be a_ij^new = a_i^old where j=0...n1. Correspondingly, for n1<0 new array will be a_ij^new = a_j^old where i=0...|n1|.

MGL command: squeeze dat rx [ry=1 rz=1 sm=off]
Method on mglData: void Squeeze (int rx, int ry=1, int rz=1, bool smooth=false)
C function: void mgl_data_squeeze (HMDT dat, int rx, int ry, int rz, int smooth)

Reduces the data size by excluding data elements which indexes are not divisible by rx, ry, rz correspondingly. Parameter smooth set to use smoothing (i.e. out[i]=\sum_{j=i,i+r} a[j]/r) or not (i.e. out[i]=a[j*r]).

MGL command: crop dat n1 n2 'dir'
Method on mglData: void Crop (int n1, int n2, char dir='x')
C function: void mgl_data_crop (HMDT dat, int n1, int n2, char dir)

Cuts off edges of the data i<n1 and i>n2 if n2>0 or i>n[xyz]-n2 if n2<=0 along direction dir.

MGL command: insert dat 'dir' [pos=off num=0]
Method on mglData: void Insert (char dir, int pos=0, int num=1)
C function: void mgl_data_insert (HMDT dat, char dir, int pos, char num)

Insert num slices along dir-direction at position pos and fill it by zeros.

MGL command: delete dat 'dir' [pos=off num=0]
Method on mglData: void Delete (char dir, int pos=0, int num=1)
C function: void mgl_data_delete (HMDT dat, char dir, int pos, char num)

Delete num slices along dir-direction at position pos.

MGL command: sort dat idx [idy=-1]
Method on mglData: void Sort (lond idx, long idy=-1)
C function: void mgl_data_sort (HMDT dat, lond idx, long idy)

Sort data rows (or slices in 3D case) by values of specified column idx (or cell {idx,idy} for 3D case). Note, this function is not thread safe!


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

This document was generated on April 13, 2012 using texi2html 5.0.

© manpagez.com 2000-2025
Individual documents may contain additional copyright information.