精华内容
下载资源
问答
  • 1、查询time在时间区间dateStart到dateEnd, 并且type=1 ,以time进行分组,对value取平均值 public JSONObject getData(long dateStart, long dateEnd) { RestHighLevelClient rhlClient = EsClient.getInstance()....

    1、查询time在时间区间dateStart到dateEnd, 并且type=1 ,以time进行分组,对value取平均值

    public JSONObject getData(long dateStart, long dateEnd) {
            RestHighLevelClient rhlClient = EsClient.getInstance().getRhlClient();
            JSONObject jsonObject = new JSONObject();
            try  {
                SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();

                //根据 time进行分组
                TermsAggregationBuilder field= AggregationBuilders.terms("terms_time").field("time").size(500); //特别注意,如果不设置size,默认查出最多10条
                AggregationBuilder avgValue = AggregationBuilders.avg("avg_value").field("value");
                searchSourceBuilder.aggregation(field.subAggregation(avgValue));
                
                //where条件
                QueryBuilder type= QueryBuilders.termQuery("type", 1);
                RangeQueryBuilder timeRange = QueryBuilders.rangeQuery("time").from(dateStart).to(dateEnd);
                BoolQueryBuilder boolQueryBuilder =  QueryBuilders.boolQuery(); 
                boolQueryBuilder.must(type).must(timeRange);
                searchSourceBuilder.query(boolQueryBuilder);
                searchSourceBuilder.sort("time", SortOrder.ASC); 
                
                SearchRequest searchRequest = new SearchRequest(INDEXNAME).source(searchSourceBuilder);
                SearchResponse response = rhlClient.search(searchRequest);
               
                ParsedLongTerms termsCode = response.getAggregations().get("terms_time");
                List<? extends Terms.Bucket> buckets = termsCode.getBuckets();
                JSONArray timeArray = new JSONArray();  
                JSONArray valueArray = new JSONArray();  
                buckets.forEach(coed -> {
                    long key = (long) coed.getKey();
                    ParsedAvg countValue = coed.getAggregations().get("avg_value");
                    timeArray.add(key);
                    valueArray.add(countValue.value());
                });
                jsonObject.put("time", timeArray);
                jsonObject.put("value", valueArray);
            } catch (Exception e) {
                e.printStackTrace();
            }
       return jsonObject;
    }

     

    2、求和与求平均数类似,将上面的代码avg改为sum即可

    展开全文
  • EXCEL 多条件求最大值、最小值、平均值、标准偏差 当表格内的数据需要按个条件进行筛选后求最大值、最小值、平均值、标准偏差时怎么办?同事的这个问题差点把我难倒。经过一番摸索,为便于公式的理解,我将参与...

    EXCEL 多条件求最大值、最小值、平均值、标准偏差

    当表格内的数据需要按多个条件进行筛选后求最大值、最小值、平均值、标准偏差时怎么办?同事的这个问题差点把我难倒。经过一番摸索,为便于公式的理解,我将参与运算的单元格做了命名。
    公式如下:
    多条件求最大值:{=MAX((供方1=供应商)*(汇总月份1=月份)*水最大值)}
    多条件求最小值:{=MIN(IF((供方1=供应商)*(汇总月份1=月份),水最小值,""))}
    多条件求平均值:{=IF(批量1=0,0,AVERAGE(IF((供方1=供应商)*(汇总月份1=月份),水平均,"")))}
    多条件求标准偏差:{=STDEV(IF((供方=供应商)*(汇总月份=月份)*(水<>""),水))}
    以上都是数组公式,需使用 Ctrl+Shift+Enter 组合键输入那个大括号。
    展开全文
  • 帧图片求平均值消除噪声

    千次阅读 2019-03-25 19:47:33
    之前在一篇论文中看到,如果是拍摄静止的图像,且相机的位置可以固定,则可以尝试拍摄帧图像并求平均来消除这种随机噪声。于是,我就尝试了一下,效果还是很好的。下图就是上图同样角度拍摄的连续20帧图像的平均...

        有些时候,相机会因为ISO过高等原因,产生严重的噪声。比如下图,是用一个劣质相机拍摄的,噪声很严重。

    之前在一篇论文中看到,如果是拍摄静止的图像,且相机的位置可以固定,则可以尝试拍摄多帧图像并求平均来消除这种随机噪声。于是,我就尝试了一下,效果还是很好的。下图就是上图同样角度拍摄的连续20帧图像的平均图像。

    如果这样观看对比不明显,可以观看下面我用PS将两幅图拼合在一起的样子。拼合图片的左侧是拍摄的单帧图片,右侧是20幅图片平均得到的图片。明显可以感觉到,右侧的噪声少了很多。

    这种方法可以有效消除噪声,缺点是相当于增长了曝光时间。对曝光时间要求不严格的情况下,可以使用这种简单的方法来获得更好地图片。

    以下是使用OpenCV控制UVC摄像头拍摄图片的简单程序,里面有“常规模式”和“连续帧平均模式”可以选择。

    #include <opencv2\opencv.hpp>
    #include <iostream>
    #include <string.h>
    
    using namespace std;
    using namespace cv;
    
    int main()
    {
    	int mode = 1;			//拍照模式选择:0为常规模式,1为连续帧平均模式。
    
    	int frame_number = 1;	//连续帧平均模式下的帧数计数
    	int frame_top = 20;		//定义连续帧平均模式下的帧数上限
    
    	int num_photo = 1;		//计算拍照总数
    	int num_top = 1;		//定义需要照片的数量
    
    	string num;		//为拍摄的照片取名字
    
    	VideoCapture capture;	//定义一个相机
    	capture.open(0);		//开启相机
    
    
    	//摄像头的基本设置
    	capture.set(CV_CAP_PROP_FRAME_WIDTH, 960);//像素数量设置
    	capture.set(CV_CAP_PROP_FRAME_HEIGHT, 720);
    	capture.set(CV_CAP_PROP_CONTRAST, 90);//对比度设置
    
    
    	Mat frame;		//定义一个抓取图像的容器矩阵
    
    	Mat average = Mat::zeros(720,960,CV_16UC3);	//定义一个用于做平均的容器,初始值置零
    	Mat tmp = Mat::zeros(720, 960, CV_16UC3);	//定义一个用于暂存的容器,初始值置零
    
    	if (mode == 1) //如果是连续帧平均模式
    	{
    		while (true)	//反复执行程序
    		{
    			capture >> frame;
    			imshow("实时图像", frame);	//remember, imshow() needs a window name for its first parameter
    
    			if (waitKey(30) >= 0)//如果有按键
    			{
    				average = Mat::zeros(720, 960, CV_16UC3);	//做平均的容器在每次使用时初始值置零
    				for (frame_number = 1; frame_number <= frame_top; frame_number++) //累积一定数量的相邻帧图片
    				{
    					capture >> frame; //读取一帧新的图
    					frame.convertTo(tmp, CV_16UC3); //强制类型转换,防止饱和,转换后的内容存放在暂存容器tmp中
    					average = average + tmp; //将tmp累积在平均容器中
    				}
    				average = average / frame_top;
    				
    				if (num_photo < 10)
    					num = "0" + to_string(num_photo);
    				else
    					num = to_string(num_photo);
    
    				average.convertTo(frame, CV_8UC3);
    				imwrite("image" + num + ".jpg", frame);
    				num_photo++;
    			}
    
    			if (num_photo == (num_top + 1))//结束条件
    				break;
    		}
    	}
    	else  //如果是普通拍照模式
    	{
    		while (true)	//用来反复执行程序
    		{
    			capture >> frame;
    			imshow("实时图像", frame);	//remember, imshow() needs a window name for its first parameter
    
    			if (waitKey(30) >= 0)//如果有按键
    			{
    				if (num_photo < 10)
    					num = "0" + to_string(num_photo);
    				else
    					num = to_string(num_photo);
    
    				imwrite("imagea"+num+".jpg", frame);
    				num_photo++;
    
    			}
    			if (num_photo == (num_top+1))//结束条件
    				break;
    		}
    	}
    	return 0;
    }

    请注意,连续帧平均模式中有一个求平均值的步骤,其中涉及了转换数据类型的问题。

    在OpenCV中,一般的RGB图像都默认使用“CV_8UC3”的数据类型,即8位无符号3通道图像数据类型,其值域是[0,255]。但在求很多图片的平均时,需要将多幅图片累加起来,就一定会超过255这个上界,就会出现数据溢出现象,无法获得正确的结果。这时,就需要使用数据类型转换了。下面我摘录了最重要的部分代码,可以简单看一下数据类型转换函数 “.convertTo(variable_name, object_type)”的用法。其中,“CV_16UC3”数据类型的范围是“CV_16UC3”数据类型的256倍,因此只要不求超过连续256帧的和,应该都不会发生溢出问题。

    Mat average = Mat::zeros(720,960,CV_16UC3);	//定义一个用于做平均的容器,初始值置零
    Mat tmp = Mat::zeros(720, 960, CV_16UC3);	//定义一个用于暂存的容器,初始值置零
    
    for (frame_number = 1; frame_number <= frame_top; frame_number++) //累积一定数量的相邻帧图片
    	{
    		capture >> frame; //读取一帧新的图
    		frame.convertTo(tmp, CV_16UC3); //强制类型转换,防止饱和,转换后的内容存放在暂存容器tmp中
    		average = average + tmp; //将tmp累积在平均容器中
    	}
    average = average / frame_top;
    
    average.convertTo(frame, CV_8UC3);
    imwrite("image" + num + ".jpg", frame);

     

    展开全文
  • 语法:COUNTIFS(criteria_range1, criteria1, criteria_range2, criteria2...SUMIFS和AVERAGEIFS语法和用法类似,只不过第一个参数要写需要求和/平均值的Range。 以SUMIFS语法为例:SUMIFS(sum_range, criteria_ran...

    语法:COUNTIFS(criteria_range1, criteria1, criteria_range2, criteria2, …)

    例如,统计A列性别为男的,年龄在5-13之间的,姓A的数量:

    SUMIFS和AVERAGEIFS语法和用法类似,只不过第一个参数要写需要求和/平均值的Range。

    以SUMIFS语法为例:SUMIFS(sum_range, criteria_range1, criteria1, criteria_range2, criteria2, …)

    应用:

    展开全文
  • JAVA——实现数组求平均

    千次阅读 2019-11-14 14:35:37
    题目: 1.键盘录入班级人数 2.根据录入的班级人数创建数组 3.利用随机数产生0-100的... 4.... (1)打印该班级的不及格人数 (2)打印该班级的平均分 (3)演示格式如下: 请输入班级人数: 键盘录入:100 控制台输出:...
  • EXCEL中如何满足特定条件行指定列的平均值,使用这个方法,支持合并单元格的处理。 地址:http://www.excelfb.com/ 点击:Excel自动写公式工具(根据汉字描述写公式,支持合并单元格公式) 点击:满足条件的行...
  • 二维数组求平均

    千次阅读 2019-05-09 17:45:17
    实例:5个人,3门成绩,保存数组a[5][3]中,每科的平均成绩、每个学生的平均成绩. #include<stdio.h> void main() { int i,j,sum = 0; int v[3],c[5]; int a[5][3]; for(j=...
  • 单链表递归求平均

    千次阅读 2018-08-18 18:11:20
    //递归结束条件,递归到尾节点的下一个节点,直接返回 else return count_LNode(L -> next) + 1 ; //否则继续指向下一个节点,表长加1 } n = count_LNode(L) double getAverage_List(LinkList L,int n...
  • ![图片说明](https://img-ask.csdn.net/upload/201608/25/1472096574_515628.png) 为0的是缺考的,是不计算在平均分里的、怎么用用一段SQL获得各科的平均分和各科的参考人数
  • 遍历数组,求和,求平均,用判断条件找大于平均数的数与数组中的每一个数作比较,将printf放在循环里面 /*输入一组数,求其平均数,并输出其中大于平均数的所有数*/ #include <stdio.h> #define N 40 ...
  • C语言:输入数值求平均数(T&F)

    千次阅读 2020-02-18 16:38:42
    C语言求平均数 算法思想 平均数 aver=(∑num)/n; 1、设置3个变量,用来存放数据,将每次数据的累加和存储到一个变量中,给计数变量+1,最后输出。 2、可以考虑用数组实现,首先要求读入数组的大小,即要输入多少个...
  • Excel里去掉最高分最低分再求平均

    千次阅读 2010-04-12 07:14:00
    一、直接求平均分 如果要对指定的数据直接求平均分,那显然是最简单的。如图1所示,假定要求平均分的数据在B2:B20单元格,那么我们只要在B21单元格输入公式:=AVERAGE(B2:B20),回车后平均分就有了。 二、去掉指
  • 计算字段汇总方式更改不起作用,原来想对计算字段求平均值无法实现 原因:计算字段是在统计的层级去计算的,不是底层数据,在这里,对11月计算字段求平均和求和是一样的,因为只有一个“11月”项,因此,用于计算...
  • 学生选课平均成绩的SQL语句

    万次阅读 2013-03-01 00:08:55
    有一个student表,共有三列,第一列为学生id列,存储选课的学生id,可以重复,即允许一个学生选门课。 第二列为course列,即选课的课程名。 第三列为score列 ,即学生的成绩。 student表中有以下数据: 则,...
  • 今天表弟说fo循环这块有一点难懂,让我给他帮忙梳理一下,顺便用这个做出老师的求平均成绩的作业; 在这里先言简意赅的学习一下for循环的用法; for(A;B;C) { } 在这里“A”我们可以理解为初始值,"B"可以理解为...
  • 如何特定单元格的平均

    千次阅读 2017-03-01 13:08:20
    如何特定单元格的平均值 求助EXCEL达人,EXCEL计算范围:A列里程项目大于等于13公里