Next: , Previous: , Up: Data processing   [Contents][Index]


7.6 Make another data

Команда MGL: subdata RES dat xx [yy=: zz=:]
Метод класса 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: 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: hist RES dat num v1 v2 [nsub=0]
Команда MGL: hist RES dat wdat num 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 задает число дополнительных точек интерполяции (для сглаживания получившейся гистограммы). Функция возвращает NULL или пустой массив если данные не могут быть созданы при данных значениях аргументов. См. также Data manipulation

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





Next: , Previous: , Up: Data processing   [Contents][Index]