| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
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.
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)Суммирует с накоплением в выбранном направлении(ях).
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)Выполняет интегрирование (методом трапеций) в выбранном направлении(ях).
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)Выполняет дифференцирование в выбранном направлении(ях).
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);.
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)Выполняет двойное дифференцирование (как в операторе Лапласа) в выбранном направлении(ях).
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).
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).
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).
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.
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'.
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.
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 в выбранном направлении(ях).
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 точкам.
mglData: void Envelop (char dir='x')void mgl_data_envelop (HMDT dat, char dir)Находит огибающую данных в выбранном направлении dir.
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.
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.