7.6 Make another data

Команда MGL: subdata 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 или пустой массив если данные не могут быть созданы при данных значениях аргументов.

Команда MGL: subdata 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 или пустой массив если данные не могут быть созданы при данных значениях аргументов.

Команда MGL: column 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 или пустой массив если данные не могут быть созданы при данных значениях аргументов.

Команда MGL: resize 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 или пустой массив если данные не могут быть созданы при данных значениях аргументов.

Команда MGL: evaluate RES dat idat [norm=on]
Команда MGL: evaluate RES dat idat jdat [norm=on]
Команда MGL: evaluate 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 или пустой массив если данные не могут быть созданы при данных значениях аргументов.

Команда MGL: section RES dat ids ['dir'='y' val=nan]
Команда MGL: section 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, то выходной массив будет результатом последовательного объединения секций.

Команда MGL: solve RES dat val 'dir' [norm=on]
Команда MGL: solve 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, для примеров кода и графика.

Команда MGL: roots RES 'func' ini ['var'='x']
Команда MGL: roots 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 или пустой массив если данные не могут быть созданы при данных значениях аргументов.

Команда MGL: roots 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 или пустой массив если данные не могут быть созданы при данных значениях аргументов.

Команда MGL: detect 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 игнорируются.

Команда MGL: hist RES dat n v1 v2 [nsub=0]
Команда MGL: hist 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, Распределение данных

Команда MGL: histl RES dat n v1 v2
Команда MGL: histl 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, Распределение данных

Команда MGL: momentum 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 или пустой массив если данные не могут быть созданы при данных значениях аргументов.

Команда MGL: sum 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 или пустой массив если данные не могут быть созданы при данных значениях аргументов.

Команда MGL: max 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 или пустой массив если данные не могут быть созданы при данных значениях аргументов.

Команда MGL: min 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 или пустой массив если данные не могут быть созданы при данных значениях аргументов.

Команда MGL: minmax RES dat
Метод класса mglData: mglData MinMax () const
Функция С: HMDT mgl_data_minmax (HCDT dat)

Возвращает положение локальных минимумов и максимумов. Функция возвращает NULL или пустой массив если минимумов и максимумов нет.

Команда MGL: conts RES val dat
Метод класса mglData: mglData Conts (mreal val) const
Функция С: HMDT mgl_data_conts (mreal val, HCDT dat)

Возвращает координаты линий уровня для dat[i,j]=val. Кривые разделяются NAN. Функция возвращает NULL или пустой массив если линий уровня нет.

Команда MGL: combine 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 или пустой массив если данные не могут быть созданы при данных значениях аргументов.

Команда MGL: trace 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 или пустой массив если данные не могут быть созданы при данных значениях аргументов.

Команда MGL: correl 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)

Возвращает массив аргументов массива данных.

Команда MGL: pulse 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, для примеров кода и графика.

Команда MGL: first 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.

Команда MGL: 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.