7.4 Заполнение данных

Команда MGL: list DAT v1 ...

Создает новый массив данных dat и заполняет его числовыми значениями аргументов v1 .... Команда может создавать одно- и двухмерные массивы с произвольными значениями. Для создания 2d массива следует использовать разделитель ‘|’, который означает начало новой строки данных. Размер массива данных будет [maximal of row sizes * number of rows]. Например, команда list 1 | 2 3 создаст массив [1 0; 2 3]. Замечу, что максимальное число аргументов равно 1000.

Команда MGL: list DAT d1 ...

Создает новый массив данных dat и заполняет его значениями из массивов d1 .... Команда может создавать двух- и трёхмерные (если аргументы – двумерные массивы) массивы. Меньшая размерность всех массивов в аргументах должна совпадать. В противном случае аргумент (массив) будет пропущен.

Метод класса mglData: void Set (const mreal *A, int NX, int NY=1, int NZ=1)
Метод класса mglData: void Set (const double *A, int NX, int NY=1, int NZ=1)
Функция С: void mgl_data_set_mreal (HMDT dat, const mreal *A, int NX, int NY, int NZ)
Функция С: void mgl_data_set_double (HMDT dat, const double *A, int NX, int NY, int NZ)
Метод класса mglDataC: void Set (const float *A, int NX, int NY=1, int NZ=1)
Метод класса mglDataC: void Set (const double *A, int NX, int NY=1, int NZ=1)
Метод класса mglDataC: void Set (const dual *A, int NX, int NY=1, int NZ=1)
Функция С: void mgl_datac_set_float (HADT dat, const mreal *A, int NX, int NY, int NZ)
Функция С: void mgl_datac_set_double (HADT dat, const double *A, int NX, int NY, int NZ)
Функция С: void mgl_datac_set_complex (HADT dat, const dual *A, int NX, int NY, int NZ)

Выделяет память и копирует данные из массивов типа mreal* или double*, т.е. из массивов определённых как mreal a[NX*NY*NZ];.

Метод класса mglData: void Set (const mreal **A, int N1, int N2)
Метод класса mglData: void Set (const double **A, int N1, int N2)
Функция С: void mgl_data_set_mreal2 (HMDT dat, const mreal **A, int N1, int N2)
Функция С: void mgl_data_set_double2 (HMDT dat, const double **A, int N1, int N2)

Выделяет память и копирует данные из массивов типа mreal** или double** с размерностями N1, N2, т.е. из массивов определённых как mreal a[N1][N2];.

Метод класса mglData: void Set (const mreal ***A, int N1, int N2)
Метод класса mglData: void Set (const double ***A, int N1, int N2)
Функция С: void mgl_data_set_mreal3 (HMDT dat, const mreal ***A, int N1, int N2)
Функция С: void mgl_data_set_double3 (HMDT dat, const double ***A, int N1, int N2)

Выделяет память и копирует данные из массивов типа mreal*** или double*** с размерностями N1, N2, N3, т.е. из массивов определённых как mreal a[N1][N2][N3];.

Метод класса mglData: void Set (gsl_vector *v)
Метод класса mglDataC: void Set (gsl_vector *v)
Функция С: void mgl_data_set_vector (HMDT dat, gsl_vector *v)
Функция С: void mgl_datac_set_vector (HADT dat, gsl_vector *v)

Выделяет память и копирует данные из структуры типа gsl_vector *.

Метод класса mglData: void Set (gsl_matrix *m)
Метод класса mglDataC: void Set (gsl_matrix *m)
Функция С: void mgl_data_set_matrix (HMDT dat, gsl_matrix *m)
Функция С: void mgl_datac_set_matrix (HADT dat, gsl_matrix *m)

Выделяет память и копирует данные из структуры типа gsl_matrix *.

Метод класса mglData: void Set (const mglDataA &from)
Метод класса mglData: void Set (HCDT from)
Функция С: void mgl_data_set (HMDT dat, HCDT from)
Метод класса mglDataC: void Set (const mglDataA &from)
Метод класса mglDataC: void Set (HCDT from)
Функция С: void mgl_datac_set (HADT dat, HCDT from)

Выделяет память и копирует данные из другого экземпляра данных from.

Метод класса mglDataC: void Set (const mglDataA &re, const mglDataA &im)
Метод класса mglDataC: void Set (HCDT re, HCDT im)
Метод класса mglDataC: void SetAmpl (HCDT ampl, const mglDataA &phase)
Функция С: void mgl_datac_set_ri (HADT dat, HCDT re, HCDT im)
Функция С: void mgl_datac_set_ap (HADT dat, HCDT ampl, HCDT phase)

Выделяет память и копирует данные из экземпляра данных для действительной re и мнимой im частей комплексного массива данных.

Метод класса mglData: void Set (const std::vector<int> &d)
Метод класса mglDataC: void Set (const std::vector<int> &d)
Метод класса mglData: void Set (const std::vector<float> &d)
Метод класса mglDataC: void Set (const std::vector<float> &d)
Метод класса mglData: void Set (const std::vector<double> &d)
Метод класса mglDataC: void Set (const std::vector<double> &d)
Метод класса mglDataC: void Set (const std::vector<dual> &d)

Выделяет память и копирует данные из массива типа std::vector<T>.

Метод класса mglData: void Set (const char *str, int NX, int NY=1, int NZ=1)
Функция С: void mgl_data_set_values (const char *str, int NX, int NY, int NZ)
Метод класса mglDataC: void Set (const char *str, int NX, int NY=1, int NZ=1)
Функция С: void mgl_datac_set_values (const char *str, int NX, int NY, int NZ)

Выделяет память и сканирует массив данных из строки.

Метод класса mglData: void SetList (long n, ...)

Allocate memory and set data from variable argument list of double values. Note, you need to specify decimal point ‘.’ for integer values! For example, the code SetList(2,0.,1.); is correct, but the code SetList(2,0,1); is incorrect.

Метод класса mglData: void Set (const arma::vec &d)
Метод класса mglData: void Set (const arma::mat &d)
Метод класса mglData: void Set (const arma::cube &d)
Метод класса mglDataC: void Set (const arma::vec &d)
Метод класса mglDataC: void Set (const arma::cx_vec &d)
Метод класса mglDataC: void Set (const arma::mat &d)
Метод класса mglDataC: void Set (const arma::cx_mat &d)
Метод класса mglDataC: void Set (const arma::cube &d)
Метод класса mglDataC: void Set (const arma::cx_cube &d)

Выделяет память и копирует данные из Armadillo структур.

Метод класса mglData: arma::mat arma_mat (long k=0)
Метод класса mglData: arma::cube arma_cube ()
Метод класса mglData: arma::cx_mat arma_mat (long k=0)
Метод класса mglData: arma::cx_cube arma_cube ()

Возвращает данные в формате структур Armadillo.

Устанавливает флаг использования внешнего массива данных, которые не будут удалены. Флаг может быть возвращён в исходное состояние и создан новый внутренний массив если использовались функции изменяющие размер данных.

Команда MGL: var DAT num v1 [v2=nan]

Создает новый одномерный массив данных dat размером num, и заполняет его равномерно в диапазоне [v1, v2]. Если v2=nan, то используется v2=v1.

Команда MGL: fill dat v1 v2 ['dir'='x']
Метод класса mglData: void Fill (mreal v1, mreal v2, char dir='x')
Метод класса mglDataC: void Fill (dual v1, dual v2, char dir='x')
Функция С: void mgl_data_fill (HMDT dat, mreal v1, mreal v2, char dir)
Функция С: void mgl_datac_fill (HADT dat, dual v1, dual v2, char dir)

Заполняет значениями равно распределёнными в диапазоне [x1, x2] в направлении dir={‘x’,‘y’,‘z’}.

Команда MGL: fill dat 'eq'[vdat wdat]
Метод класса mglData: void Fill (HMGL gr, const char *eq, const char *opt="")
Метод класса mglData: void Fill (HMGL gr, const char *eq, const mglDataA &vdat, const char *opt="")
Метод класса mglData: void Fill (HMGL gr, const char *eq, const mglDataA &vdat, const mglDataA &wdat, const char *opt="")
Метод класса mglDataC: void Fill (HMGL gr, const char *eq, const char *opt="")
Метод класса mglDataC: void Fill (HMGL gr, const char *eq, const mglDataA &vdat, const char *opt="")
Метод класса mglDataC: void Fill (HMGL gr, const char *eq, const mglDataA &vdat, const mglDataA &wdat, const char *opt="")
Функция С: void mgl_data_fill_eq (HMGL gr, HMDT dat, const char *eq, HCDT vdat, HCDT wdat, const char *opt)
Функция С: void mgl_datac_fill_eq (HMGL gr, HADT dat, const char *eq, HCDT vdat, HCDT wdat, const char *opt)

Заполняет значениями вычисленными по формуле eq. Формула представляет собой произвольное выражение, зависящее от переменных ‘x’, ‘y’, ‘z’, ‘u’, ‘v’, ‘w’. Координаты ‘x’, ‘y’, ‘z’ полагаются меняющимися в диапазоне Min x Max (в отличие от функции Modify). Переменные ‘i’, ‘j’, ‘k’ равны значениям соответствующего индекса. При этом, используются нулевые значения для переменных, отвечающих отсутствующим размерностям. Переменная ‘u’ – значения исходного массива, переменные ‘v’, ‘w’ – значения массивов vdat, wdat. Последние могут быть NULL, т.е. опущены.

Команда MGL: modify dat 'eq' [dim=0]
Команда MGL: modify dat 'eq' vdat [wdat]
Метод класса mglData: void Modify (const char *eq, int dim=0)
Метод класса mglData: void Modify (const char *eq, const mglDataA &v)
Метод класса mglData: void Modify (const char *eq, const mglDataA &v, const mglDataA &w)
Метод класса mglDataC: void Modify (const char *eq, int dim=0)
Метод класса mglDataC: void Modify (const char *eq, const mglDataA &v)
Метод класса mglDataC: void Modify (const char *eq, const mglDataA &v, const mglDataA &w)
Функция С: void mgl_data_modify (HMDT dat, const char *eq, int dim)
Функция С: void mgl_data_modify_vw (HMDT dat, const char *eq, HCDT v, HCDT w)
Функция С: void mgl_datac_modify (HADT dat, const char *eq, int dim)
Функция С: void mgl_datac_modify_vw (HADT dat, const char *eq, HCDT v, HCDT w)

Аналогично предыдущему с координатами ‘x’, ‘y’, ‘z’, меняющимися в диапазоне [0,1]. Переменные ‘i’, ‘j’, ‘k’ равны значениям соответствующего индекса. При этом, используются нулевые значения для переменных, отвечающих отсутствующим размерностям. Если указан dim>0, то изменяются только слои >=dim.

Команда MGL: fillsample dat 'how'
Метод класса mglData: void FillSample (const char *how)
Функция С: void mgl_data_fill_sample (HMDT a, const char *how)

Заполняет массив данных ’x’ или ’k’ значениями для преобразований Ханкеля (’h’) или Фурье (’f’).

Команда MGL: datagrid dat xdat ydat zdat
Метод класса mglData: mglData Grid (HMGL gr, const mglDataA &x, const mglDataA &y, const mglDataA &z, const char *opt="")
Метод класса mglData: mglData Grid (const mglDataA &x, const mglDataA &y, const mglDataA &z, mglPoint p1, mglPoint p2)
Функция С: void mgl_data_grid (HMGL gr, HMDT u, HCDT x, HCDT y, HCDT z, const char *opt)
Функция С: void mgl_data_grid_xy (HMDT u, HCDT x, HCDT y, HCDT z, mreal x1, mreal x2, mreal y1, mreal y2)

Заполняет значения массива результатом линейной интерполяции (считая координаты равнораспределенными в диапазоне осей координат или в диапазоне [x1,x2]*[y1,y2]) по триангулированной поверхности, найденной по произвольно расположенным точкам ‘x’, ‘y’, ‘z’. NAN значение используется для точек сетки вне триангулированной поверхности. См. раздел Making regular data, для примеров кода и графика.

Команда MGL: put dat val [i=all j=all k=all]
Метод класса mglData: void Put (mreal val, int i=-1, int j=-1, int k=-1)
Метод класса mglDataC: void Put (dual val, int i=-1, int j=-1, int k=-1)
Функция С: void mgl_data_put_val (HMDT a, mreal val, int i, int j, int k)
Функция С: void mgl_datac_put_val (HADT a, dual val, int i, int j, int k)

Присваивает значения (под-)массива dat[i, j, k] = val. Индексы i, j, k равные ‘-1’ задают значения val для всего диапазона соответствующего направления(ий). Например, Put(val,-1,0,-1); задает a[i,0,j]=val для i=0...(nx-1), j=0...(nz-1).

Команда MGL: put dat vdat [i=all j=all k=all]
Метод класса mglData: void Put (const mglDataA &v, int i=-1, int j=-1, int k=-1)
Метод класса mglDataC: void Put (const mglDataA &v, int i=-1, int j=-1, int k=-1)
Функция С: void mgl_data_put_dat (HMDT a, HCDT v, int i, int j, int k)
Функция С: void mgl_datac_put_dat (HADT a, HCDT v, int i, int j, int k)

Копирует значения из массива v в диапазон значений данного массива. Индексы i, j, k равные ‘-1’ задают диапазон изменения значений в соответствующих направление(ях). Младшие размерности массива v должны быть больше выбранного диапазона массива. Например, Put(v,-1,0,-1); присвоит a[i,0,j]=v.ny>nz ? v.a[i,j] : v.a[i], где i=0...(nx-1), j=0...(nz-1) и условие v.nx>=nx выполнено.

Команда MGL: refill dat xdat vdat [sl=-1]
Команда MGL: refill dat xdat ydat vdat [sl=-1]
Команда MGL: refill dat xdat ydat zdat vdat
Метод класса mglData: void Refill (const mglDataA &x, const mglDataA &v, mreal x1, mreal x2, long sl=-1)
Метод класса mglData: void Refill (const mglDataA &x, const mglDataA &v, mglPoint p1, mglPoint p2, long sl=-1)
Метод класса mglData: void Refill (const mglDataA &x, const mglDataA &y, const mglDataA &v, mglPoint p1, mglPoint p2, long sl=-1)
Метод класса mglData: void Refill (const mglDataA &x, const mglDataA &y, const mglDataA &z, const mglDataA &v, mglPoint p1, mglPoint p2)
Метод класса mglData: void Refill (HMGL gr, const mglDataA &x, const mglDataA &v, long sl=-1, const char *opt="")
Метод класса mglData: void Refill (HMGL gr, const mglDataA &x, const mglDataA &y, const mglDataA &v, long sl=-1, const char *opt="")
Метод класса mglData: void Refill (HMGL gr, const mglDataA &x, const mglDataA &y, const mglDataA &z, const mglDataA &v, const char *opt="")
Функция С: void mgl_data_refill_x (HMDT a, HCDT x, HCDT v, mreal x1, mreal x2, long sl)
Функция С: void mgl_data_refill_xy (HMDT a, HCDT x, HCDT y, HCDT v, mreal x1, mreal x2, mreal y1, mreal y2, long sl)
Функция С: void mgl_data_refill_xyz (HMDT a, HCDT x, HCDT y, HCDT z, HCDT v, mreal x1, mreal x2, mreal y1, mreal y2, mreal z1, mreal z2)
Функция С: void mgl_data_refill_gr (HMGL gr, HMDT a, HCDT x, HCDT y, HCDT z, HCDT v, long sl, const char *opt)

Заполняет значениями интерполяции массива v в точках {x, y, z}={X[i], Y[j], Z[k]} (или {x, y, z}={X[i,j,k], Y[i,j,k], Z[i,j,k]} если x, y, z не 1d массивы), где X,Y,Z равномерно распределены в диапазоне [x1,x2]*[y1,y2]*[z1,z2] и имеют такой же размер как и заполняемый массив. Если параметр sl равен 0 или положительный, то изменятся будет только sl-ый срез.

Команда MGL: gspline dat xdat vdat [sl=-1]
Метод класса mglData: void RefillGS (const mglDataA &x, const mglDataA &v, mreal x1, mreal x2, long sl=-1)
Функция С: void mgl_data_refill_gs (HMDT a, HCDT x, HCDT v, mreal x1, mreal x2, long sl)

Заполняет значениями глобального кубического сплайна для массива v в точках x=X[i], где X равномерно распределен в диапазоне [x1,x2] и имеет такой же размер как и заполняемый массив. Если параметр sl равен 0 или положительный, то изменятся будет только sl-ый срез.

Команда MGL: idset dat 'ids'
Метод класса mglData: void SetColumnId (const char *ids)
Функция С: void mgl_data_set_id (const char *ids)
Метод класса mglDataC: void SetColumnId (const char *ids)
Функция С: void mgl_datac_set_id (HADT a, const char *ids)

Задает названия ids для колонок массива данных. Строка должна содержать один символ ’a’...’z’ на колонку. Эти названия используются в функции column.

Команда MGL: bernoulli dat [p=0.5]
Метод класса mglData: void RndBernoulli (mreal p=0.5)
Функция С: void mgl_data_rnd_bernoulli (HMDT dat, mreal p)
Функция С: mreal mgl_rnd_bernoulli (mreal p)

Заполняет массив случайными числами с распределением Бернулли вероятности p.

Команда MGL: binomial dat n [p=0.5]
Метод класса mglData: void RndBinomial (long n, mreal p=0.5)
Функция С: void mgl_data_rnd_binomial (HMDT dat, long n, mreal p)
Функция С: mreal mgl_rnd_binomial (long n, mreal p)

Заполняет массив случайными числами с биномиальным распределением в n бросков с вероятностью p.

Команда MGL: brownian dat y1 y2 sigma h
Метод класса mglData: void RndBrownian (mreal y1, mreal y2, mreal sigma, mreal h)
Функция С: void mgl_data_rnd_brownian (HMDT dat, mreal y1, mreal y2, mreal sigma, mreal h)

Заполняет массив случайным броуновским движением.

Команда MGL: discrete dat vdat
Метод класса mglData: void RndDiscrete (const mglDataA &vdat)
Функция С: void mgl_data_rnd_discrete (HMDT dat, HCDT vdat)
Функция С: mreal mgl_rnd_discrete (HCDT vdat)

Заполняет массив случайными числами с дискретным распределением.

Команда MGL: exponential dat [p]
Метод класса mglData: void RndExponential (mreal p)
Функция С: void mgl_data_rnd_exponential (HMDT dat, mreal p)
Функция С: mreal mgl_rnd_exponential (mreal p)

Заполняет массив случайными числами с экспоненциальным распределением масштаба p.

Команда MGL: gaussian dat [mu=0 sigma=1]
Метод класса mglData: void RndGaussian (mreal mu=0, mreal sigma=1)
Функция С: void mgl_data_rnd_gaussian (HMDT dat, mreal mu, mreal sigma)
Функция С: mreal mgl_rnd_gaussian (mreal mu, mreal sigma)

Заполняет массив случайными числами с гауссовым распределением со средним mu и масштабом sigma.

Команда MGL: shuffle dat ['dir'='a']
Метод класса mglData: void RndShuffle (char dir='a')
Функция С: void mgl_data_rnd_shuffle (HMDT dat, char dir)

Перемешивает содержимое ячеек (для dir=‘a’) или срезов (для dir=‘xyz’).

Команда MGL: uniform dat lo hi
Метод класса mglData: void RndUniform (mreal lo, mreal hi)
Функция С: void mgl_data_rnd_uniform (HMDT dat, mreal lo, mreal hi)
Функция С: mreal mgl_rnd_uniform (mreal lo, mreal hi)

Заполняет массив случайными числами с равномерным распределением в интервале (lo,hi).

Команда MGL: uniformint dat lo hi
Метод класса mglData: void RndInteger (long lo, long hi)
Функция С: void mgl_data_rnd_integer (HMDT dat, long lo, mreal hi)
Функция С: long mgl_rnd_integer (long lo, long hi)

Заполняет массив случайными целыми числами с равномерным распределением в интервале [lo,hi).