7.9 Информационные функции

В MathGL есть ряд функций для получения свойств массива данных. В MGL скриптах большинство из них реализовано в виде "суффиксов". Суффиксы дают числовое значение некоторой характеристики массива данных. Например, его размер, минимальное и максимальное значение, сумму элементов и т.д. Суффиксы начинаются с точки ‘.’ сразу после массива (без пробелов). Например, a.nx даст размер массива a вдоль x, b(1).max даст максимальное значение второй колонки массива b, (c(:,0)^2).sum даст сумму квадратов в первой строке массива c и т.д.

Команда MGL: info dat
Метод класса mglDataA: const char * PrintInfo () const
Метод класса mglDataA: void PrintInfo (FILE *fp) const
Функция С: const char * mgl_data_info (HCDT dat)
Fortran процедура: mgl_data_info (long dat, char *out, int len)

Возвращает строку с информацией о данных (размеры, моменты и пр.) или пишет её в файл. В MGL скрипте печатает её как сообщение.

Команда MGL: info 'txt'

Печатает строку txt как сообщение.

Команда MGL: info val

Печатает значение числа val как сообщение.

Команда MGL: print dat
Команда MGL: print 'txt'
Команда MGL: print val

Аналогично info, но сразу выводит в stdout.

Команда MGL: echo dat

Печатает все значения массива dat как сообщение.

Команда MGL: progress val max
Метод класса mglGraph: void Progress (int val, int max)
Функция С: void mgl_progress (int val, int max)

Отображает прогресс чего-либо как заполненную полоску с относительной длиной val/max. На данный момент работает только в консоли и основанных на FLTK программах, включая mgllab и mglview.

MGL suffix: (dat) .nx
MGL suffix: (dat) .ny
MGL suffix: (dat) .nz
Метод класса mglDataA: long GetNx ()
Метод класса mglDataA: long GetNy ()
Метод класса mglDataA: long GetNz ()
Функция С: long mgl_data_get_nx (HCDT dat)
Функция С: long mgl_data_get_ny (HCDT dat)
Функция С: long mgl_data_get_nz (HCDT dat)

Возвращает размер данных в направлении x, y и z соответственно.

MGL suffix: (dat) .max
Метод класса mglDataA: mreal Maximal () const
Функция С: mreal mgl_data_max (HCDT dat)

Возвращает максимальное значение массива данных.

MGL suffix: (dat) .min
Метод класса mglDataA: mreal Minimal () const
Функция С: mreal mgl_data_min (HMDT dat) const

Возвращает минимальное значение массива данных.

Метод класса mglDataA: mreal Minimal (int &i, int &j, int &k) const
Функция С: mreal mgl_data_min_int (HCDT dat, int *i, int *j, int *k)

Возвращает максимальное значение массива данных и сохраняет его положение в переменные i, j, k.

Метод класса mglDataA: mreal Maximal (int &i, int &j, int &k) const
Функция С: mreal mgl_data_max_int (HCDT dat, int *i, int *j, int *k)

Возвращает минимальное значение массива данных и сохраняет его положение в переменные i, j, k.

Метод класса mglDataA: mreal Minimal (mreal &x, mreal &y, mreal &z) const
Функция С: mreal mgl_data_min_real (HCDT dat, mreal *x, mreal *y, mreal *z)

Возвращает максимальное значение массива данных и его приближенное (интерполированное) положение в переменные x, y, z.

MGL suffix: (dat) .mx
MGL suffix: (dat) .my
MGL suffix: (dat) .mz
Метод класса mglDataA: mreal Maximal (mreal &x, mreal &y, mreal &z) const
Функция С: mreal mgl_data_max_real (HCDT dat, mreal *x, mreal *y, mreal *z)

Возвращает минимальное значение массива данных и его приближенное (интерполированное) положение в переменные x, y, z.

MGL suffix: (dat) .mxf
MGL suffix: (dat) .myf
MGL suffix: (dat) .mzf
MGL suffix: (dat) .mxl
MGL suffix: (dat) .myl
MGL suffix: (dat) .mzl
Метод класса mglDataA: long Maximal (char dir, long from) const
Метод класса mglDataA: long Maximal (char dir, long from, long &p1, long &p2) const
Функция С: mreal mgl_data_max_firstl (HCDT dat, char dir, long from, long *p1, long *p2)

Возвращает положение первого (последнего при from<0) максимума в направлении dir, начиная с позиции from. Положение остальных координат для максимума сохраняется в p1, p2.

MGL suffix: (dat) .sum
MGL suffix: (dat) .ax
MGL suffix: (dat) .ay
MGL suffix: (dat) .az
MGL suffix: (dat) .aa
MGL suffix: (dat) .wx
MGL suffix: (dat) .wy
MGL suffix: (dat) .wz
MGL suffix: (dat) .wa
MGL suffix: (dat) .sx
MGL suffix: (dat) .sy
MGL suffix: (dat) .sz
MGL suffix: (dat) .sa
MGL suffix: (dat) .kx
MGL suffix: (dat) .ky
MGL suffix: (dat) .kz
MGL suffix: (dat) .ka
Метод класса mglDataA: mreal Momentum (char dir, mreal &a, mreal &w) const
Метод класса mglDataA: mreal Momentum (char dir, mreal &m, mreal &w, mreal &s, mreal &k) const
Функция С: mreal mgl_data_momentum_val (HCDT dat, char dir, mreal *a, mreal *w, mreal *s, mreal *k)

Возвращает нулевой момент (энергию, I=\sum a_i) и записывает первый (среднее, m = \sum \xi_i a_i/I), второй (ширину, w^2 = \sum (\xi_i-m)^2 a_i/I), третий (асимметрия, s = \sum (\xi_i-m)^3 a_i/ I w^3) и четвёртый моменты (эксцесс, k = \sum (\xi_i-m)^4 a_i / 3 I w^4)). Здесь \xi – соответствующая координата если dir равно ‘'x'’, ‘'y'’, ‘'z'’. В противном случае среднее, ширина, асимметрия, эксцесс равны m = \sum a_i/N, w^2 = \sum (a_i-m)^2/N и т.д.

MGL suffix: (dat) .fst
Метод класса mglDataA: mreal Find (const char *cond, int &i, int &j, int &k) const
Функция С: mreal mgl_data_first (HCDT dat, const char *cond, int *i, int *j, int *k)

Находит положение (после заданного в i, j, k) первого не нулевого значения формулы cond. Функция возвращает найденное значение и записывает его положение в i, j, k.

MGL suffix: (dat) .lst
Метод класса mglDataA: mreal Last (const char *cond, int &i, int &j, int &k) const
Функция С: mreal mgl_data_last (HCDT dat, const char *cond, int *i, int *j, int *k)

Находит положение (перед заданного в i, j, k) последнего не нулевого значения формулы cond. Функция возвращает найденное значение и записывает его положение в i, j, k.

Метод класса mglDataA: int Find (const char *cond, char dir, int i=0, int j=0, int k=0) const
Функция С: mreal mgl_data_find (HCDT dat, const char *cond, int i, int j, int k)

Возвращает положение первого в направлении dir не нулевого значения формулы cond. Поиск начинается с точки {i,j,k}.

Метод класса mglDataA: bool FindAny (const char *cond) const
Функция С: mreal mgl_data_find_any (HCDT dat, const char *cond)

Определяет есть ли хоть одно значение массива, удовлетворяющее условию cond.

MGL suffix: (dat) .a

Возвращает первое число массива (для .a это dat->a[0]).