RES dat xx [yy=all zz=all]
¶mglData
: mglData
SubData (mreal
xx, mreal
yy=-1
, mreal
zz=-1
) const
¶mglDataC
: mglData
SubData (mreal
xx, mreal
yy=-1
, mreal
zz=-1
) const
¶HMDT
mgl_data_subdata (HCDT
dat, mreal
xx, mreal
yy, mreal
zz)
¶Возвращает в res подмассив массива данных dat с фиксированными значениями индексов с положительными значениями. Например, SubData(-1,2)
выделяет третью строку (индексы начинаются с нуля), SubData(4,-1)
выделяет 5-ую колонку, SubData(-1,-1,3)
выделяет 4-ый срез и т.д. В MGL скриптах обычно используется упрощенная версия dat(xx,yy,zz)
. Функция возвращает NULL или пустой массив если данные не могут быть созданы при данных значениях аргументов.
RES dat xdat [ydat zdat]
¶mglData
: mglData
SubData (const mglDataA &
xx, const mglDataA &
yy, const mglDataA &
zz) const
¶mglDataC
: mglData
SubData (const mglDataA &
xx, const mglDataA &
yy, const mglDataA &
zz) const
¶HMDT
mgl_data_subdata_ext (HCDT
dat, HCDT
xx, HCDT
yy, HCDT
zz)
¶Возвращает в res подмассив массива данных dat с индексами, заданными в массивах xx, yy, zz (косвенная адресация). Результат будет иметь размерность массивов с индексами. Размеры массивов xx, yy, zz с индексами должна быть одинакова, либо должны быть "скаляром" (т.е. 1*1*1). В MGL скриптах обычно используется упрощенная версия dat(xx,yy,zz)
. Функция возвращает NULL или пустой массив если данные не могут быть созданы при данных значениях аргументов.
RES dat 'eq'
¶mglData
: mglData
Column (const char *
eq) const
¶mglDataC
: mglData
Column (const char *
eq) const
¶HMDT
mgl_data_column (HCDT
dat, const char *
eq)
¶Возвращает массив данных заполненный по формуле eq, вычисленной для именованных колонок (или срезов). Например, Column("n*w^2/exp(t)");
. Имена колонок должны быть предварительно заданы функцией idset или при чтении файлов данных. В MGL скриптах обычно используется упрощенная версия dat('eq')
. Функция возвращает NULL или пустой массив если данные не могут быть созданы при данных значениях аргументов.
RES dat mx [my=1 mz=1]
¶mglData
: mglData
Resize (int
mx, int
my=0
, int
mz=0
, mreal
x1=0
, mreal
x2=1
, mreal
y1=0
, mreal
y2=1
, mreal
z1=0
, mreal
z2=1
) const
¶mglDataC
: mglData
Resize (int
mx, int
my=0
, int
mz=0
, mreal
x1=0
, mreal
x2=1
, mreal
y1=0
, mreal
y2=1
, mreal
z1=0
, mreal
z2=1
) const
¶HMDT
mgl_data_resize (HCDT
dat, int
mx, int
my, int
mz)
¶HMDT
mgl_data_resize_box (HCDT
dat, int
mx, int
my, int
mz, mreal
x1, mreal
x2, mreal
y1, mreal
y2, mreal
z1, mreal
z2)
¶Возвращает массив данных размером mx, my, mz со значениями полученными интерполяцией значений из части [x1,x2] x [y1,y2] x [z1,z2] исходного массива. Величины x,y,z полагаются нормированными в диапазоне [0,1]. Если значение mx, my или mz равно 0, то исходный размер используется. Функция возвращает NULL или пустой массив если данные не могут быть созданы при данных значениях аргументов.
RES dat idat [norm=on
]
¶RES dat idat jdat [norm=on
]
¶RES dat idat jdat kdat [norm=on
]
¶mglData
: mglData
Evaluate (const mglDataA &
idat, bool
norm=true
) const
¶mglData
: mglData
Evaluate (const mglDataA &
idat, const mglDataA &
jdat, bool
norm=true
) const
¶mglData
: mglData
Evaluate (const mglDataA &
idat, const mglDataA &
jdat, const mglDataA &
kdat, bool
norm=true
) const
¶mglDataC
: mglData
Evaluate (const mglDataA &
idat, bool
norm=true
) const
¶mglDataC
: mglData
Evaluate (const mglDataA &
idat, const mglDataA &
jdat, bool
norm=true
) const
¶mglDataC
: mglData
Evaluate (const mglDataA &
idat, const mglDataA &
jdat, const mglDataA &
kdat, bool
norm=true
) const
¶HMDT
mgl_data_evaluate (HCDT
dat, HCDT
idat, HCDT
jdat, HCDT
kdat, int
norm)
¶Возвращает массив данных, полученный в результате интерполяции исходного массива в точках других массивов (например, res[i,j]=dat[idat[i,j],jdat[i,j]]). Размеры массивов idat, jdat, kdat должны совпадать. Координаты в idat, jdat, kdat полагаются нормированными в диапазон [0,1] (при norm=true
) или в диапазоны [0,nx], [0,ny], [0,nz] соответственно. Функция возвращает NULL или пустой массив если данные не могут быть созданы при данных значениях аргументов.
RES dat ids ['dir'='y' val=nan
]
¶RES dat id
['dir'='y' val=nan
]
¶mglData
: mglData
Section (const mglDataA &
ids, const char *
dir='y'
, mreal
val=NAN
) const
¶mglData
: mglData
Section (long
id, const char *
dir='y'
, mreal
val=NAN
) const
¶mglDataC
: mglData
Section (const mglDataA &
ids, const char *
dir='y'
, mreal
val=NAN
) const
¶mglDataC
: mglData
Section (long
id, const char *
dir='y'
, mreal
val=NAN
) const
¶HMDT
mgl_data_section (HCDT
dat, HCDT
ids, const char *
dir, mreal
val)
¶HMDT
mgl_data_section_val (HCDT
dat, long
id, const char *
dir, mreal
val)
¶HADT
mgl_datac_section (HCDT
dat, HCDT
ids, const char *
dir, mreal
val)
¶HADT
mgl_datac_section_val (HCDT
dat, long
id, const char *
dir, mreal
val)
¶Возвращает массив данных, являющийся id-ой секцией (диапазоном срезов, разделенных значениями val) исходного массива dat. Для id<0 используется обратный порядок (т.e. -1 даст последнюю секцию). Если указано несколько ids, то выходной массив будет результатом последовательного объединения секций.
RES dat val
'dir' [norm=on
]
¶RES dat val
'dir' idat [norm=on
]
¶mglData
: mglData
Solve (mreal
val, char
dir, bool
norm=true
) const
¶mglData
: mglData
Solve (mreal
val, char
dir, const mglDataA &
idat, bool
norm=true
) const
¶HMDT
mgl_data_solve (HCDT
dat, mreal
val, char
dir, HCDT
idat, int
norm)
¶Возвращает массив индексов (корней) вдоль выбранного направления dir в которых значения массива dat равны val. Выходной массив будет иметь размеры массива dat в направлениях поперечных dir. Если предоставлен массив idat, то его значения используются как стартовые при поиске. Это позволяет найти несколько веток с помощью последовательного вызова функции. Индексы полагаются нормированными в диапазон [0,1] (при norm=true
) или в диапазоны [0,nx], [0,ny], [0,nz] соответственно. Функция возвращает NULL или пустой массив если данные не могут быть созданы при данных значениях аргументов. См. раздел Solve sample, для примеров кода и графика.
RES 'func' ini ['var'='x']
¶RES 'func' ini
['var'='x']
¶mglData
: mglData
Roots (const char *
func, char
var) const
¶HMDT
mgl_data_roots (const char *
func, HCDT
ini, char
var)
¶mreal
mgl_find_root_txt (const char *
func, mreal
ini, char
var)
¶Возвращает массив корней уравнения ’func’=0 для переменной var с начальными положениями ini. Функция возвращает NULL или пустой массив если данные не могут быть созданы при данных значениях аргументов.
RES 'funcs' 'vars' ini
¶mglData
: mglData
MultiRoots (const char *
funcs, const char *
vars) const
¶mglDataC
: mglDataC
MultiRoots (const char *
funcs, const char *
vars) const
¶HMDT
mgl_find_roots_txt (const char *
func, const char *
vars, HCDT
ini)
¶HADT
mgl_find_roots_txt_c (const char *
func, const char *
vars, HCDT
ini)
¶Возвращает массив корней системы уравнений ’funcs’=0 для переменных vars с начальными значениями ini. Функция возвращает NULL или пустой массив если данные не могут быть созданы при данных значениях аргументов.
RES dat lvl dj [di=0 minlen=0]
¶mglData
: mglData
Detect (mreal
lvl, mreal
dj, mreal
di=0
, mreal
minlen=0
) const
¶HMDT
mgl_data_detect (HCDT
dat, mreal
lvl, mreal
dj, mreal
di, mreal
minlen)
¶Возвращает массив кривых {x,y}, разделенных NAN значениями, для локальных максимумов массива dat как функцию координаты x. Шумы амплитудой меньше lvl игнорируются. Параметр dj (в диапазоне [0,ny]) задает область "притяжения" точек в y-направлении к кривой. Аналогично, di продолжает кривые в x-направлении через разрывы длиной менее di точек. Кривые с минимальной длинной менее minlen игнорируются.
RES dat n v1 v2 [nsub=0]
¶RES dat wdat n v1 v2 [nsub=0]
¶mglData
: mglData
Hist (int
n, mreal
v1=0
, mreal
v2=1
, int
nsub=0
) const
¶mglData
: mglData
Hist (const mglDataA &
w, int
n, mreal
v1=0
, mreal
v2=1
, int
nsub=0
) const
¶mglDataC
: mglData
Hist (int
n, mreal
v1=0
, mreal
v2=1
, int
nsub=0
) const
¶mglDataC
: mglData
Hist (const mglDataA &
w, int
n, mreal
v1=0
, mreal
v2=1
, int
nsub=0
) const
¶HMDT
mgl_data_hist (HCDT
dat, int
n, mreal
v1, mreal
v2, int
nsub)
¶HMDT
mgl_data_hist_w (HCDT
dat, HCDT
w, int
n, mreal
v1, mreal
v2, int
nsub)
¶Возвращает распределение (гистограмму) из n точек от значений массива в диапазоне [v1, v2]. Массив w задает веса элементов (по умолчанию все веса равны 1). Параметр nsub задает число дополнительных точек интерполяции (для сглаживания получившейся гистограммы). Если nsub<0, то используется линейная интерполяция вместо сплайнов. Функция возвращает NULL или пустой массив если данные не могут быть созданы при данных значениях аргументов. См. также histl, Распределение данных
RES dat n v1 v2
¶RES dat wdat n v1 v2
¶mglData
: mglData
HistL (int
n, mreal
v1=0
, mreal
v2=1
) const
¶mglData
: mglData
HistL (const mglDataA &
w, int
n, mreal
v1=0
, mreal
v2=1
) const
¶mglDataC
: mglData
HistL (int
n, mreal
v1=0
, mreal
v2=1
) const
¶mglDataC
: mglData
HistL (const mglDataA &
w, int
n, mreal
v1=0
, mreal
v2=1
) const
¶HMDT
mgl_data_hist_l (HCDT
dat, HCDT
w, int
n, mreal
v1, mreal
v2)
¶Возвращает распределение (гистограмму) из n точек от значений массива в диапазоне [v1, v2] используя линейную интерполяцию между точками. Массив w задает веса элементов (по умолчанию все веса равны 1). Функция возвращает NULL или пустой массив если данные не могут быть созданы при данных значениях аргументов. См. также hist, Распределение данных
RES dat 'how' ['dir'='z']
¶mglData
: mglData
Momentum (char
dir, const char *
how) const
¶mglDataC
: mglData
Momentum (char
dir, const char *
how) const
¶HMDT
mgl_data_momentum (HCDT
dat, char
dir, const char *
how)
¶Возвращает момент (1d массив) данных вдоль направления dir. Строка how определяет тип момента. Момент определяется как res_k = \sum_ij how(x_i,y_j,z_k) a_ij/ \sum_ij a_ij если dir=‘z’ и т.д. Координаты ‘x’, ‘y’, ‘z’ – индексы массива в диапазоне [0,1]. Функция возвращает NULL или пустой массив если данные не могут быть созданы при данных значениях аргументов.
RES dat 'dir'
¶mglData
: mglData
Sum (const char *
dir) const
¶mglDataC
: mglData
Sum (const char *
dir) const
¶HMDT
mgl_data_sum (HCDT
dat, const char *
dir)
¶Возвращает результат суммирования данных вдоль направления(ий) dir. Функция возвращает NULL или пустой массив если данные не могут быть созданы при данных значениях аргументов.
RES dat 'dir'
¶mglData
: mglData
Max (const char *
dir) const
¶mglDataC
: mglData
Max (const char *
dir) const
¶HMDT
mgl_data_max_dir (HCDT
dat, const char *
dir)
¶Возвращает максимальное значение данных вдоль направления(ий) dir. Функция возвращает NULL или пустой массив если данные не могут быть созданы при данных значениях аргументов.
RES dat 'dir'
¶mglData
: mglData
Min (const char *
dir) const
¶mglDataC
: mglData
Min (const char *
dir) const
¶HMDT
mgl_data_min_dir (HCDT
dat, const char *
dir)
¶Возвращает минимальное значение данных вдоль направления(ий) dir. Функция возвращает NULL или пустой массив если данные не могут быть созданы при данных значениях аргументов.
RES dat
¶mglData
: mglData
MinMax () const
¶HMDT
mgl_data_minmax (HCDT
dat)
¶Возвращает положение локальных минимумов и максимумов. Функция возвращает NULL или пустой массив если минимумов и максимумов нет.
RES val
dat
¶mglData
: mglData
Conts (mreal
val) const
¶HMDT
mgl_data_conts (mreal
val, HCDT
dat)
¶Возвращает координаты линий уровня для dat[i,j]=val. Кривые разделяются NAN. Функция возвращает NULL или пустой массив если линий уровня нет.
RES adat bdat
¶mglData
: mglData
Combine (const mglDataA &
a) const
¶mglDataC
: mglData
Combine (const mglDataA &
a) const
¶HMDT
mgl_data_combine (HCDT
dat, HCDT
a)
¶Возвращает прямое произведение массивов (наподобие, res[i,j] = adat[i]*bdat[j] и т.д.). Функция возвращает NULL или пустой массив если данные не могут быть созданы при данных значениях аргументов.
RES dat
¶mglData
: mglData
Trace () const
¶mglDataC
: mglData
Trace () const
¶HMDT
mgl_data_trace (HCDT
dat)
¶Возвращает массив диагональных элементов a[i,i] (для 2D данных) или a[i,i,i] (для 3D данных) где i=0...nx-1. В 1D случае возвращается сам массив данных. Размеры массива данных должен быть ny,nz >= nx или ny,nz = 1. Функция возвращает NULL или пустой массив если данные не могут быть созданы при данных значениях аргументов.
RES adat bdat 'dir'
¶mglData
: mglData
Correl (const mglDataA &
b, const char *
dir) const
¶mglData
: mglData
AutoCorrel (const char *
dir) const
¶mglDataC
: mglDataC
Correl (const mglDataA &
b, const char *
dir) const
¶mglDataC
: mglDataC
AutoCorrel (const char *
dir) const
¶HMDT
mgl_data_correl (HCDT
a, HCDT
b, const char *
dir)
¶HADT
mgl_datac_correl (HCDT
a, HCDT
b, const char *
dir)
¶Возвращает корреляцию массивов a (или this в C++) и b вдоль направлений dir. При вычислении используется преобразование Фурье. Поэтому может потребоваться вызов функций swap и/или norm перед построением. Функция возвращает NULL или пустой массив если данные не могут быть созданы при данных значениях аргументов.
mglDataC
: mglData
Real () const
¶HMDT
mgl_datac_real (HCDT
dat)
¶Возвращает массив действительных частей массива данных.
mglDataC
: mglData
Imag () const
¶HMDT
mgl_datac_imag (HCDT
dat)
¶Возвращает массив мнимых частей массива данных.
mglDataC
: mglData
Abs () const
¶HMDT
mgl_datac_abs (HCDT
dat)
¶Возвращает массив абсолютных значений массива данных.
mglDataC
: mglData
Arg () const
¶HMDT
mgl_datac_arg (HCDT
dat)
¶Возвращает массив аргументов массива данных.
RES dat 'dir'
¶mglData
: mglData
Pulse (const char *
dir) const
¶HMDT
mgl_data_pulse (HCDT
dat, const char *
dir)
¶Находит параметры импульса вдоль направления dir: максимальное значение (в колонке 0), его положение (в колонке 1), ширина по параболлической аппроксимации (в колонке 3) и по полувысоте (в колонке 2), энергию около максимума (в колонке 4). NAN значения используются для ширин если максимум расположен вблизи границ массива. Отмечу, что для комплексных массивов есть неопределенность определения параметров. Обычно следует использовать квадрат абсолютного значения амплитуды (т.е. |dat[i]|^2). Поэтому MathGL не включает эту функцию в mglDataC
, хотя формально C функция будет работать и для них, но будет использовать абсолютное значение амплитуды (т.е. |dat[i]|). Функция возвращает NULL или пустой массив если данные не могут быть созданы при данных значениях аргументов. См. также max, min, momentum, sum. См. раздел Pulse properties, для примеров кода и графика.
RES dat 'dir' val
¶mglData
: mglData
First (const char *
dir, mreal
val) const
¶mglDataC
: mglData
First (const char *
dir, mreal
val) const
¶HMDT
mgl_data_first_dir (HCDT
dat, const char *
dir, mreal
val)
¶Возвращает массив положений ячеек со значениями впервые превысившими val. Для комплексных данных используется абсолютное значение. См. также last.
RES dat 'dir' val
¶mglData
: mglData
Last (const char *
dir, mreal
val) const
¶mglDataC
: mglData
Last (const char *
dir, mreal
val) const
¶HMDT
mgl_data_last_dir (HCDT
dat, const char *
dir, mreal
val)
¶Возвращает массив положений ячеек со значениями последний раз превысившими val. Для комплексных данных используется абсолютное значение. См. также first.
HMDT
mgl_formula_calc (const char *
str, long
n, ...)
¶HADT
mgl_formula_calc_c (const char *
str, long
n, ...)
¶Вычисляет формулу str для заданного списка из n массивов данных типа HCDT
. Имена переменных соответствуют именам массивов. Возвращенный массив должен быть удален пользователем по окончании использования. См. также fill.