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

6.7 Изменение данных

These functions change the data in some direction like differentiations, integrations and so on. The direction in which the change will applied is specified by the string parameter, which may contain ‘x’, ‘y’ or ‘z’ characters for 1-st, 2-nd and 3-d dimension correspondingly.

Команда MGL: cumsum dat 'dir'
Метод класса mglData: void CumSum (const char *dir)
Метод класса mglDataC: void CumSum (const char *dir)
Функция С: void mgl_data_cumsum (HMDT dat, const char *dir)
Функция С: void mgl_datac_cumsum (HADT dat, const char *dir)

Суммирует с накоплением в выбранном направлении(ях).

Команда MGL: integrate dat 'dir'
Метод класса mglData: void Integral (const char *dir)
Метод класса mglDataC: void Integral (const char *dir)
Функция С: void mgl_data_integral (HMDT dat, const char *dir)
Функция С: void mgl_datac_integral (HADT dat, const char *dir)

Выполняет интегрирование (методом трапеций) в выбранном направлении(ях).

Команда MGL: diff dat 'dir'
Метод класса mglData: void Diff (const char *dir)
Метод класса mglDataC: void Diff (const char *dir)
Функция С: void mgl_data_diff (HMDT dat, const char *dir)
Функция С: void mgl_datac_diff (HADT dat, const char *dir)

Выполняет дифференцирование в выбранном направлении(ях).

Команда MGL: diff dat xdat ydat [zdat=0]
Метод класса mglData: void Diff (const mglData &x, const mglData &y)
Метод класса mglData: void Diff (const mglData &x, const mglData &y, const mglData &z)
Функция С: void mgl_data_diff_par (HMDT dat, HCDT x, HCDTy, HCDTz)

Выполняет дифференцирование данных, параметрически зависящих от координат, в направлении x с y, z=constant. Параметр z может быть опущен, что соответствует 2D случаю. Используются следующие формулы (2D случай): da/dx = (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j), где a_i=da/di, a_j=da/dj обозначает дифференцирование вдоль 1-ой и 2-ой размерности. Похожие формулы используются и в 3D случае. Порядок аргументов можно менять – например, если данные a(i,j) зависят от координат {x(i,j), y(i,j)}, то обычная производная по ‘x’ будет равна Diff(x,y);, а обычная производная по ‘y’ будет равна Diff(y,x);.

Команда MGL: diff2 dat 'dir'
Метод класса mglData: void Diff2 (const char *dir)
Метод класса mglDataC: void Diff2 (const char *dir)
Функция С: void mgl_data_diff2 (HMDT dat, const char *dir)
Функция С: void mgl_datac_diff2 (HADT dat, const char *dir)

Выполняет двойное дифференцирование (как в операторе Лапласа) в выбранном направлении(ях).

Команда MGL: sinfft dat 'dir'
Метод класса mglData: void SinFFT (const char *dir)
Функция С: void mgl_data_sinfft (HMDT dat, const char *dir)

Выполняет синус преобразование в выбранном направлении(ях). Синус преобразование есть \sum a_j \sin(k j) (см. http://en.wikipedia.org/wiki/Discrete_sine_transform#DST-I).

Команда MGL: cosfft dat 'dir'
Метод класса mglData: void CosFFT (const char *dir)
Функция С: void mgl_data_cosfft (HMDT dat, const char *dir)

Выполняет косинус преобразование в выбранном направлении(ях). Синус преобразование есть \sum a_j \cos(k j) (см. http://en.wikipedia.org/wiki/Discrete_cosine_transform#DCT-I).

Метод класса mglDataC: void FFT (const char *dir)
Функция С: void mgl_datac_fft (HADT dat, const char *dir)

Выполняет фурье преобразование в выбранном направлении(ях). Если строка dir содержит ‘i’, то используется обратное преобразование фурье. Фурье преобразование есть \sum a_j \exp(i k j) (см. http://en.wikipedia.org/wiki/Discrete_Fourier_transform).

Команда MGL: hankel dat 'dir'
Метод класса mglData: void Hankel (const char *dir)
Метод класса mglDataC: void Hankel (const char *dir)
Функция С: void mgl_data_hankel (HMDT dat, const char *dir)
Функция С: void mgl_datac_hankel (HADT dat, const char *dir)

Выполняет преобразование Ханкеля в выбранном направлении(ях). Преобразование Ханкеля есть \sum a_j J_0(k j) (см. http://en.wikipedia.org/wiki/Hankel_transform).

Команда MGL: swap dat 'dir'
Метод класса mglData: void Swap (const char *dir)
Метод класса mglDataC: void Swap (const char *dir)
Функция С: void mgl_data_swap (HMDT dat, const char *dir)
Функция С: void mgl_datac_swap (HADT dat, const char *dir)

Меняет местами левую и правую части данных в выбранном направлении(ях). Полезно для отображения результата FFT.

Команда MGL: roll dat 'dir' num
Метод класса mglData: void Roll (char dir, num)
Метод класса mglDataC: void Roll (char dir, num)
Функция С: void mgl_data_roll (HMDT dat, char dir, num)
Функция С: void mgl_datac_roll (HADT dat, char dir, num)

Сдвигает данные на num ячеек в выбранном направлении(ях). Соответствует замене индекса на i->(i+num)%nx при dir='x'.

Команда MGL: mirror dat 'dir'
Метод класса mglData: void Mirror (const char *dir)
Метод класса mglDataC: void Mirror (const char *dir)
Функция С: void mgl_data_mirror (HMDT dat, const char *dir)
Функция С: void mgl_datac_mirror (HADT dat, const char *dir)

Отражает данные в выбранном направлении(ях). Соответствует замене индекса на i->n-i. Отмечу, что похожего эффекта на графике можно достичь используя опции (see section Опции команд), например, surf dat; xrange 1 -1.

Команда MGL: sew dat ['dir'='xyz' da=2*pi]
Метод класса mglData: void Sew (const char *dir, mreal da=2*M_PI)
Функция С: void mgl_data_sew (HMDT dat, const char *dir, mreal da)

Удаляет скачки данных (например, скачки фазы после обратных тригонометрических функций) с периодом da в выбранном направлении(ях).

Команда MGL: smooth data type ['dir'='xyz']
Метод класса mglData: void Smooth (const char *dir="xyz", mreal delta=0)
Метод класса mglDataC: void Smooth (const char *dir="xyz", mreal delta=0)
Функция С: void mgl_data_smooth (HMDT dat, const char *dir, mreal delta)
Функция С: void mgl_datac_smooth (HADT dat, const char *dir, mreal delta)

Сглаживает данные в выбранном направлении(ях) dir. Строка dirs задает направления вдоль которых будет производиться сглаживание. Если dirs содержит: ‘0’ – ничего не делает, ‘3’ линейное усреднение по 3 точкам, ‘5’ линейное усреднение по 5 точкам. По умолчанию используется квадратичное усреднение по 5 точкам.

Команда MGL: envelop dat ['dir'='x']
Метод класса mglData: void Envelop (char dir='x')
Функция С: void mgl_data_envelop (HMDT dat, char dir)

Находит огибающую данных в выбранном направлении dir.

Команда MGL: norm dat v1 v2 [sym=off dim=0]
Метод класса mglData: void Norm (mreal v1=0, mreal v2=1, bool sym=false, int dim=0)

Нормирует данные в интервал [v1,v2]. Если sym=true, то используется симметричный интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Изменения применяются только к срезам >=dim.

Команда MGL: normsl dat v1 v2 ['dir'='z' keep=on sym=off]
Метод класса mglData: void NormSl (mreal v1=0, mreal v2=1, char dir='z', bool keep_en=true, bool sym=false)
Функция С: void mgl_data_norm_slice (HMDT dat, mreal v1, mreal v2, char dir, int keep_en, int sym)

Нормирует данные срез-за-срезом в выбранном направлении dir в интервал [v1,v2]. Если sym=true, то используется симметричный интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Если keep=true, то максимальное значение k-го среза ограничено величиной \sqrt\sum a_ij(k)/\sum a_ij(0).


[ < ] [ > ]   [ << ] [ Up ] [ >> ]

This document was generated by Autobuild on September 28, 2013 using texi2html 1.82.