В 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]
).