any
用途:any函数用于判断向量或者矩阵中任何元素非零或满足关系条件,满足则返回true,不满足则返回false。
类型:普通函数
该函数重载有any( V )、any( X )、any( X, dim )。
1、对于向量 V,如果向量的任何元素非零或满足关系条件,则返回 true。
2、对于矩阵X和
- dim=0,返回一个行向量(类型为urowvec或umat),每个元素 (0 或 1) 指示X的相应列的任何元素是否非零;
- dim=1,返回列向量(类型为ucolvec或umat),每个元素 (0 或 1) 指示X的相应行的任何元素是否非零。
3、dim参数是可选的;默认情况下dim=0。
4、可以使用关系运算符代替V或X,例如A > 0.9。
示例代码如下:
vec V = randu<vec>(10);
mat X = randu<mat>(5,5);
// status1 will be set to true if vector V has any non-zero elements
bool status1 = any(V);
// status2 will be set to true if vector V has any elements greater than 0.5
bool status2 = any(V > 0.5);
// status3 will be set to true if matrix X has any elements greater than 0.6;
// note the use of vectorise()
bool status3 = any(vectorise(X) > 0.6);
// generate a row vector indicating which columns of X have elements greater than 0.7
umat A = any(X > 0.7);
参考:Armadillo库文档any
all
用途:all函数用于判断向量或者矩阵中所有元素非零或满足关系条件,满足则返回true,不满足则返回false。
类型:普通函数
该函数重载有all( V )、all( X )、all( X, dim )。
1、对于向量 V,如果向量的所有元素非零或满足关系条件,则返回 true;反之返回false。
2、对于矩阵X和
- dim=0,返回一个行向量(类型为urowvec或umat),每个元素 (0 或 1) 指示X的相应列的所有元素是否非零;
- dim=1,返回列向量(类型为ucolvec或umat),每个元素 (0 或 1) 指示X的相应行的所有元素是否非零。
3、dim参数是可选的;默认情况下dim=0。
4、可以使用关系运算符代替V或X,例如A > 0.5。
示例代码如下:
vec V = randu<vec>(10);
mat X = randu<mat>(5,5);
// status1 will be set to true if vector V has all non-zero elements
bool status1 = all(V);
// status2 will be set to true if vector V has all elements greater than 0.5
bool status2 = all(V > 0.5);
// status3 will be set to true if matrix X has all elements greater than 0.6;
// note the use of vectorise()
bool status3 = all(vectorise(X) > 0.6);
// generate a row vector indicating which columns of X have all elements greater than 0.7
umat A = all(X > 0.7);
参考:Armadillo库文档all
.is_zero
用途:.is_zero函数用于判断矩阵中所有元素是否为0,是则返回true;反之返回false。
类型:普通函数
该函数重载有.is_zero()、.is_zero( tolerance )。
1、对于具有非复数元素的对象:如果每个元素的绝对值≤tolerance,则返回true;反之返回false。
2、对于具有复数元素的对象:如果每个元素的每个分量(实部和虚部)的绝对值≤tolerance,则返回true;反之返回false。
3、参数tolerance是可选的;默认情况下tolerance = 0。
示例代码如下:
mat A = zeros<mat>(5,5);
A(0,0) = datum::eps;
cout << A.is_zero() << endl;
cout << A.is_zero(datum::eps) << endl;
参考:Armadillo库文档.is_zero