码迷,mamicode.com
首页 > 其他好文 > 详细

一行代码分组研华PCI-1711采集卡模拟量waveform数据

时间:2021-06-02 19:59:47      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:长度   一个   通过   思路   http   where   bsp   分组   众数   

  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个

 

一行代码分组研华PCI-1711采集卡模拟量waveform数据

标签:长度   一个   通过   思路   http   where   bsp   分组   众数   

原文地址:https://www.cnblogs.com/kcir/p/14837238.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!