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 игнорируются. См. раздел Sample ‘detect’, для примеров кода и графика.
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, Распределение данных. См. раздел Sample ‘hist’, для примеров кода и графика.
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, Распределение данных. См. раздел Sample ‘histl’, для примеров кода и графика.
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.