В MathGL есть ряд функций для получения свойств массива данных. В MGL скриптах большинство из них реализовано в виде "суффиксов". Суффиксы дают числовое значение некоторой характеристики массива данных. Например, его размер, минимальное и максимальное значение, сумму элементов и т.д. Суффиксы начинаются с точки ‘.’ сразу после массива (без пробелов). Например, a.nx даст размер массива a вдоль x, b(1).max даст максимальное значение второй колонки массива b, (c(:,0)^2).sum даст сумму квадратов в первой строке массива c и т.д.
dat ¶mglDataA: const char * PrintInfo () const ¶mglDataA: void PrintInfo (FILE *fp) const ¶const char * mgl_data_info (HCDT dat) ¶ mgl_data_info (long dat, char *out, int len) ¶Возвращает строку с информацией о данных (размеры, моменты и пр.) или пишет её в файл. В MGL скрипте печатает её как сообщение.
'txt' ¶Печатает строку txt как сообщение.
val ¶Печатает значение числа val как сообщение.
dat ¶'txt' ¶val ¶Аналогично info, но сразу выводит в stdout.
dat ¶Печатает все значения массива dat как сообщение.
val max ¶mglGraph: void Progress (int val, int max) ¶void mgl_progress (int val, int max) ¶Отображает прогресс чего-либо как заполненную полоску с относительной длиной val/max. На данный момент работает только в консоли и основанных на FLTK программах, включая mgllab и mglview.
(dat) .nx ¶(dat) .ny ¶(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 соответственно.
(dat) .max ¶mglDataA: mreal Maximal () const ¶mreal mgl_data_max (HCDT dat) ¶Возвращает максимальное значение массива данных.
(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.
(dat) .mx ¶(dat) .my ¶(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.
(dat) .mxf ¶(dat) .myf ¶(dat) .mzf ¶(dat) .mxl ¶(dat) .myl ¶(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.
(dat) .sum ¶(dat) .ax ¶(dat) .ay ¶(dat) .az ¶(dat) .aa ¶(dat) .wx ¶(dat) .wy ¶(dat) .wz ¶(dat) .wa ¶(dat) .sx ¶(dat) .sy ¶(dat) .sz ¶(dat) .sa ¶(dat) .kx ¶(dat) .ky ¶(dat) .kz ¶(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 и т.д.
(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.
(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.
(dat) .a ¶Возвращает первое число массива (для .a это dat->a[0]).