E017

向量中的sum()函数,支持关系运算和逻辑运算表达式。

 

#include "stdafx.h"

#include "orsciJWVCL.h"
#include "orsciVM.h"
using namespace orsci;
using namespace orsci::vmt;


int main()
{
{
vdouble x;
x = "-5:10, 7, 8";
cout << x << endl; //-5,-4,...,8, 9, 10, 7, 8
cout << sum(x) << endl; //全部元素累加和。共55。
cout << sum(x, GT(0)) << endl; //GT(0)代表大于0的数累加和,值70。
cout << sum(x, BETWEEN(3, 7)) << endl; //对于处于3和7之间的数累加,因存在两个7,所以为32。
cout << sum(x, NOT(EQU(7))) << endl; //不等于7的元素累加。因为存在两个7,所以为55-14=41。等价于sum(x, NoEQU(7))。
cout << sum(x, OR(LS(0), BETWEEN(3, 7))) << endl; //对于<0或处于[3,7]区间的数累加。结果为-15+32=17。
cout << sum(x, AND(BETWEEN(3, 7), NoEQU(5))) << endl; //累加3到7之间但不是5的数之和。值32-5=27。
//支持复杂逻辑表达式
cout << sum(x, OR(AND(GT(3), LS(7)), NOT(NOT(EQU(1))))) << endl; //计算(>3 and <7 ) or (==1)的数。值为16。

}
return 0;
}

输出

(一)程序运行结果

-5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 7 8
55
70
32
41
17
27

(二)说明:

(1)vdouble、vint等向量都支持带有关系运算和逻辑运算的复杂表达式形式,例如sum()、count、find()、minv()、maxv()、mean()、var()、var_pop()、stddev()、stddev_pop()等。

(2)向量,请参看书籍:姜维. 《数据分析与数据挖掘》、《数据分析与数据挖掘实践》

(6)orsci包支持向量和矩阵计算,可下载配套软件orsci-art应用。

书籍 姜维. 《数据分析与数据挖掘》、《数据分析与数据挖掘实践》
软件 orsci-art开发包(C++语言、Delphi语言和C语言)。