DAT v1 ...
¶Создает новый массив данных dat и заполняет его числовыми значениями аргументов v1 ...
. Команда может создавать одно- и двухмерные массивы с произвольными значениями. Для создания 2d массива следует использовать разделитель ‘|’, который означает начало новой строки данных. Размер массива данных будет [maximal of row sizes * number of rows]. Например, команда list 1 | 2 3
создаст массив [1 0; 2 3]. Замечу, что максимальное число аргументов равно 1000.
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.
mglData
: void
Link (mglData &
from)
¶mglData
: void
Link (mreal *
A, int
NX, int
NY=1
, int
NZ=1
)
¶void
mgl_data_link (HMDT
dat, const mreal *
A, int
NX, int
NY, int
NZ)
¶mglDataC
: void
Link (mglDataC &
from)
¶mglDataC
: void
Link (dual *
A, int
NX, int
NY=1
, int
NZ=1
)
¶void
mgl_datac_link (HADT
dat, const mreal *
A, int
NX, int
NY, int
NZ)
¶Устанавливает флаг использования внешнего массива данных, которые не будут удалены. Флаг может быть возвращён в исходное состояние и создан новый внутренний массив если использовались функции изменяющие размер данных.
DAT num v1 [v2=nan]
¶Создает новый одномерный массив данных dat размером num, и заполняет его равномерно в диапазоне [v1, v2]. Если v2=nan
, то используется v2=v1.
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’}.
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
, т.е. опущены.
dat 'eq' [dim=0
]
¶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.
dat 'how'
¶mglData
: void
FillSample (const char *
how)
¶void
mgl_data_fill_sample (HMDT
a, const char *
how)
¶Заполняет массив данных ’x’ или ’k’ значениями для преобразований Ханкеля (’h’) или Фурье (’f’).
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, для примеров кода и графика.
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).
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 выполнено.
dat xdat vdat [sl=-1]
¶dat xdat ydat vdat [sl=-1]
¶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-ый срез.
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-ый срез.
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.
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.
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.
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)
¶Заполняет массив случайным броуновским движением.
dat vdat
¶mglData
: void
RndDiscrete (const mglDataA &
vdat)
¶void
mgl_data_rnd_discrete (HMDT
dat, HCDT
vdat)
¶mreal
mgl_rnd_discrete (HCDT
vdat)
¶Заполняет массив случайными числами с дискретным распределением.
dat [p
]
¶mglData
: void
RndExponential (mreal
p)
¶void
mgl_data_rnd_exponential (HMDT
dat, mreal
p)
¶mreal
mgl_rnd_exponential (mreal
p)
¶Заполняет массив случайными числами с экспоненциальным распределением масштаба p.
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.
dat ['dir'='a']
¶mglData
: void
RndShuffle (char
dir='a')
¶void
mgl_data_rnd_shuffle (HMDT
dat, char
dir)
¶Перемешивает содержимое ячеек (для dir=‘a’) или срезов (для dir=‘xyz’).
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).
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).