Chai Xiangyu | Research, Develop, Projects, Blogs Algorithm Armadillo API的详细清单及功能介绍

Armadillo API的详细清单及功能介绍

@toc

矩阵类、向量类、立方体类和字段类

函数名功能介绍
Mat, mat, cx_mat密集矩阵类
Col, colvec, vec密集列向量类
Row, rowvec密集行向量类
Cube, cube, cx_cube密集立方体类(“3D 矩阵”)
field类,用于在类似矩阵或类似立方体的布局中存储任意对象
SpMat, sp_mat, sp_cx_mat稀疏矩阵类
operators+ − * % / == != <= >= < > &&

成员函数和变量

函数名功能介绍
attributes.n_rows、.n_cols、.n_elem、.n_slices……
element access通过 ()、[] 和 .at() 访问元素/对象
element initialisation通过初始值列表设置元素
.zeros将所有元素设置为零
.ones将所有元素设置为一个
.eye将沿主对角线的元素设置为 1,将非对角线元素设置为零
.randu / .randn将所有元素设置为随机值
.fill将所有元素设置为指定值
.imbue使用函子或 lambda 函数提供的值填充(填充)
.clean将阈值以下的元素替换为零
.replace将特定元素替换为新值
.clamp将值限制到下限和上限
.transform通过 Functor 或 Lambda 函数转换每个元素
.for_each将函子或 lambda 函数应用于每个元素
.set_size在不保留元素的情况下更改大小(快速)
.reshape在保留元素的同时更改大小
.resize在保留元素和保留布局的同时更改大小
.copy_size将大小更改为与给定对象相同
.reset将大小更改为空
submatrix views对连续和非连续子矩阵的读/写访问
subcube views对连续和非连续子多维数据集的读/写访问
subfield views对连续子字段的读/写访问权限
.diag对矩阵对角线的读/写访问
.each_col / .each_row应用于矩阵的每一列/每行的向量运算(又名“广播”)
.each_slice应用于每个立方体切片的矩阵操作(又名“广播”)
.set_imag / .set_real设置虚部/实部
.insert_rows / cols / slices在指定的行/列/切片处插入向量/矩阵/立方体
.shed_rows / cols / slices删除指定的行/列/切片
.swap_rows / cols交换指定的行或列
.swap与给定对象交换内容
.memptr指向内存的原始指针
.colptr指向指定列使用的内存的原始指针
iterators (matrices)密集矩阵和向量的迭代器和关联成员函数
iterators (cubes)多维数据集的迭代器和关联的成员函数
iterators (sparse matrices)稀疏矩阵的迭代器和关联成员函数
iterators (submatrices)子矩阵和子立方体的迭代器和关联成员函数
compat. container functions兼容性容器函数
.as_col / .as_row将扁平化矩阵作为列或行向量返回
.col_as_mat / .row_as_mat返回多维数据集列或多维数据集行的矩阵表示形式
.t / .st返回矩阵转置
.i返回方阵的倒数
.min / .max返回极值
.index_min / .index_max极值的返回指数
.eval延迟表达的力评估
.in_range检查给定的位置或跨度是否有效
.is_empty检查对象是否为空
.is_vec检查矩阵是否为向量
.is_sorted检查向量或矩阵是否排序
.is_trimatu / .is_trimatl检查矩阵是否为上/下三角形
.is_diagmat检查矩阵是否对角线
.is_square检查矩阵是否为正方形
.is_symmetric检查矩阵是否对称
.is_hermitian检查矩阵是否为厄米特
.is_sympd检查矩阵是否对称/厄米特正定
.is_zero检查是否所有元素都为零
.is_finite检查所有元素是否都是有限的
.has_inf检查是否有任何元素是±无穷大
.has_nan检查是否有任何元素是 NaN
.print将对象打印到 std::cout 或用户指定的流
.raw_print不带格式的打印对象
.brief_print以缩短/删节形式打印对象
.save/.load (matrices & cubes)保存/加载文件或流中的矩阵和多维数据集
.save/.load (fields)保存/加载文件或流中的字段

生成的向量/矩阵/立方体

函数名功能介绍
linspace生成具有线性间距元素的向量
logspace生成具有对数间隔元素的向量
regspace生成具有规则间隔元素的矢量
randperm生成具有整数序列随机排列的向量
eye生成身份矩阵
ones生成充满 ones 的对象
zeros生成充满零的对象
randu生成具有随机值的对象(均匀分布)
randn生成具有随机值(正态分布)的对象
randg生成具有随机值的对象(伽马分布)
randi在指定时间间隔内生成具有随机整数值的对象
speye生成稀疏单位矩阵
spones生成非零元素设置为 1 的稀疏矩阵
sprandu / sprandn生成将非零元素设置为随机值的稀疏矩阵
toeplitz生成 Toeplitz 矩阵

向量/矩阵/立方体的函数

函数名功能介绍
abs获取每个元素的大小
accu累积(求和)所有元素
affmul仿射矩阵乘法
all检查所有元素是否都为非零,或满足关系条件
any检查任何元素是否为非零,或是否满足关系条件
approx_equal近似相等
arg每个元件的相位角
as_scalar将 1×1 矩阵转换为纯标量
clamp根据给定的限值获得夹紧元件
cond矩阵的条件数
conj获得每个元素的复数共轭
conv_to在矩阵类型之间转换/转换
cross矢积
cumsum累计总和
cumprod累计产品
det决定因素
diagmat从给定矩阵或向量生成对角矩阵
diagvec提取指定的对角线
diags / spdiags从给定的向量集生成波段矩阵
diff相邻元素之间的差异
dot / cdot / norm_dot点产品
eps获取每个元素到下一个最大浮点表示的距离
expmat矩阵指数
expmat_sym对称矩阵的矩阵指数
find查找非零元素或满足关系条件的元素的索引
find_finite查找有限元的索引
find_nonfinite查找非有限元的索引
find_nan查找 NaN 元素的索引
find_unique查找唯一元素的索引
fliplr / flipud从左向右或倒置翻转矩阵
imag / real提取虚部/实部
ind2sub将线性索引转换为下标
index_min / index_max极值指数
inplace_trans就地转置
intersect在两个向量/矩阵中查找公共元素
join_rows / join_cols矩阵的串联
join_slices立方体的串联
kronKronecker 张量积
log_det对数行列式
log_det_sympd对称正定矩阵的对数行列式
logmat矩阵对数
logmat_sympd对称矩阵的矩阵对数
min / max返回极值
nonzeros返回非零值
norm向量和矩阵的各种范数
norm2est矩阵 2 范数的快速估计
normalise将向量归一化为单位 p 范数
pow元件功率
powmat矩阵功率
prod元素的乘积
rank矩阵的排名
rcond倒数条件数
repelem复制元素
repmat以块状方式复制矩阵
reshape在保留元素的同时更改大小
resize在保留元素和保留布局的同时更改大小
reverse元素的顺序相反
roots多项式的根
shiftShift 元素
shuffle随机播放元素
size获取给定对象的尺寸
sort对元素进行排序
sort_index描述元素排序顺序的向量
sqrtmat矩阵的平方根
sqrtmat_sympd对称矩阵的平方根
sum元素总和
sub2ind将下标转换为线性索引
symmatu / symmatl从给定矩阵生成对称矩阵
trace对角线元素的总和
trans矩阵的转置
trapz梯形数值积分
trimatu / trimatl复制上/下三角形零件
trimatu_ind / trimatl_ind获取上/下三角形部分的分度
unique返回唯一元素
vecnorm获取矩阵中每一行或每一列的向量范数
vectorise将矩阵展平为向量
misc functions其他元素函数:exp、log、sqrt、round、sign、…
trig functions三角元素函数:cos、sin、tan、…

分解、因式分解、逆和方程求解器(密集矩阵)

函数名功能介绍
cholCholesky 分解
eig_sym致密对称/厄米特矩阵的特征分解
eig_gen致密一般方阵的特征分解
eig_pair一对一般致密方形矩阵的特征分解
hess上黑森堡分解
inv一般方阵的逆
inv_sympd对称正定矩阵的逆
lu下-上分解
null零空间的正交基
orth范围空间的正交基
pinv伪逆/广义逆
qrQR分解
qr_econ经济的QR分解
qz广义舒尔分解
schurSchur 分解
solve求解线性方程组
svd奇异值分解
svd_econ经济奇异值分解
syl西尔维斯特方程求解器

分解、因式分解和方程求解器(稀疏矩阵)

函数名功能介绍
eigs_sym稀疏对称实矩阵的特征值和特征向量数量有限
eigs_gen稀疏一般方阵的特征值和特征向量数量有限
svds截断的SVD:有限数量的奇异值和稀疏矩阵的奇异向量
spsolve求解稀疏线性方程组
spsolve_factoriser用于求解稀疏线性方程组的因式分解器
信号和图像处理
conv一维卷积
conv22D 卷积
fft / ifft一维快速傅里叶变换及其逆变换
fft2 / ifft2二维快速傅里叶变换及其逆变换
interp1一维插值
interp22D 插值
polyfit求多项式系数进行数据拟合
polyval计算多项式

统计与聚类

函数名功能介绍
stats functions均值、中位数、标准差、方差
cov协方差
cor相关
hist计数直方图
histc具有用户指定边的计数直方图
quantile数据集的分位数
princomp主成分分析(PCA)
normpdf正态分布的概率密度函数
log_normpdf正态分布概率密度函数的对数版本
normcdf正态分布的累积分布函数
mvnrnd来自多元正态分布的随机向量
chi2rnd来自卡方分布的随机数
wishrnd来自 Wishart 分布的随机矩阵
iwishrnd来自逆 Wishart 分布的随机矩阵
running_stat运行标量统计(一维过程/信号)
running_stat_vec运行向量统计(多维过程/信号)
kmeans将数据聚类到不相交的集合中
gmm_diag/gmm_full基于高斯混合模型的概率聚类和似然计算

杂项

函数名功能介绍
constantspi、inf、NaN、eps、光速……
wall_clock用于测量经过秒数的计时器
RNG seed setting用于更改 RNG 种子的函数
output streams用于打印警告和错误的流
uword / sword无符号整数和有符号整数的简写
cx_double / cx_floatstd::complex 和 std::complex
Matlab/Armadillo syntax differencesMatlab 语法和概念上对应的 Armadillo 语法的示例
example program简短的示例程序
config.hpp配置选项
API additionsAPI 稳定性和 API 添加列表

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Related Post