zoukankan      html  css  js  c++  java
  • 一行代码分组研华PCI-1711采集卡模拟量waveform数据

      1、数据分组  

    简单说一下,假设需要采集3个传感器数据,每个传感器数据长度是2,waveform模式下采集的模拟量格式是{sensor1,sensor2,sensor3,sensor1,sensor2,sensor3,}

    这样的一个数组不利于我们运算,这时需要将数组里的每个数据分3组

    =>  

    {sensor1,sensor1}

    {sensor2,sensor2}

    {sensor3,sensor3}

    下图是格式说明

    代码:

    string[] strs = { "sensor1", "sensor2", "sensor3", "sensor1", "sensor2", "sensor3" };
                int i = 0;
                int j = -(3);//组数
                var query = from s in strs
                            let num = (i / j * -j) + (++i)
                            group s by num into g
                            select g.ToArray();

    思路说明:先创建(let)一个数组,格式{1,2,3,1,2,3},再通过这个数组分组

    运行结果如下:  通过ozcode插件可清楚看到linq执行流程

       2、求众数

     int[] numbers = { 1, 2, 3, 1, 2 };
     var mostPresent1 = numbers.Distinct().Where(i => numbers.Count(j => j == i) == numbers.Distinct().Max(k => numbers.Count(l => l == k)));

    思路:

    先去掉重复的=》{1,2,3}

    在分别判断1,2,3在数组的出现次数=》{2,2,1}----- 即1出现的2次,2出现了1次,3出现了1次

    在判断{2,2,1}的最大值=》2 -----出现2次的数为众数

    在从原数组中找出现2次的数=》{1,2}

    最后找到众数2个

    吾生也有涯,而知也无涯,以有涯随无涯,殆已。
  • 相关阅读:
    07.进程管理+作业控制+文件查找与压缩+文件压缩与打包+tar打包解包+NFS
    反转数字
    取出列表中第N大的数
    nginx负载均衡
    DNS解析
    浅谈Http长连接和Keep-Alive以及Tcp的Keepalive
    django_orm操作
    多线程下的单例模式
    装饰器实现单例模式
    Django model 中的 class Meta 详解
  • 原文地址:https://www.cnblogs.com/kcir/p/14837238.html
Copyright © 2011-2022 走看看