average_vane为0到360之间的离散数据,在一段时间内有以下9种取值情况:
average_vane >=337.5 or average_vane <= 22.5 并持续一段时间,
average_vane > 22.5 and average_vane < 67.5 并持续一段时间,
average_vane >= 67.5 and average_vane <= 112.5 并持续一段时间,
average_vane > 112.5 and average_vane < 157.5 并持续一段时间,
average_vane >= 157.5 and average_vane <= 202.5 并持续一段时间 ,
average_vane > 202.5 and average_vane < 247.5 并持续一段时间,
average_vane >= 247.5 and average_vane <= 292.5并持续一段时间 ,
average_vane > 292.5 and average_vane < 337.5 并持续一段时间;
统计的总时间是以上各持续时间之和。
该算法需要统计出在该段时间内average_vane 的均值。
average_vane >=337.5 or average_vane <= 22.5 为同一个情况,可以说是八种吧,涉及过零问题。
average_vane >=337.5 or average_vane <= 22.5 并持续一段时间,
average_vane > 22.5 and average_vane < 67.5 并持续一段时间,
average_vane >= 67.5 and average_vane <= 112.5 并持续一段时间,
average_vane > 112.5 and average_vane < 157.5 并持续一段时间,
average_vane >= 157.5 and average_vane <= 202.5 并持续一段时间 ,
average_vane > 202.5 and average_vane < 247.5 并持续一段时间,
average_vane >= 247.5 and average_vane <= 292.5并持续一段时间 ,
average_vane > 292.5 and average_vane < 337.5 并持续一段时间;
统计的总时间是以上各持续时间之和。
该算法需要统计出在该段时间内average_vane 的均值。
average_vane >=337.5 or average_vane <= 22.5 为同一个情况,可以说是八种吧,涉及过零问题。
average_vane >=337.5 or average_vane <= 22.5 并持续一段时间,
~~~~~~~~这个时间是固定的吗?
/*
15*22.5 1
average_vane >=337.5 or average_vane <= 22.5 并持续一段时间, 1 3
average_vane > 22.5 and average_vane < 67.5 并持续一段时间, 3 5
average_vane >= 67.5 and average_vane <= 112.5 并持续一段时间, 5 7
average_vane > 112.5 and average_vane < 157.5 并持续一段时间, 7 9
average_vane >= 157.5 and average_vane <= 202.5 并持续一段时间 ,
9 11
average_vane > 202.5 and average_vane < 247.5 并持续一段时间, 11 13
average_vane >= 247.5 and average_vane <= 292.5并持续一段时间 , 13 15
average_vane > 292.5 and average_vane < 337.5 并持续一段时间;
*/double average_vane;average_vane = ........ 这里完成你的赋值int ft=(int)(average_vane/22.5);//average_vane 除以 22.5 然后转换为 int
switch(ft)
{
case : 2
//此种情况处理程序 此时 ft = 2
// 1 < ft < 3
//average_vane > 22.5 and average_vane < 67.5 并持续一段时间, break;
case: 4
//此种情况处理程序 此时 ft = 4
// 3 < ft< 5
//average_vane >= 67.5 and average_vane <= 112.5 并持续一段时间, break;
case: 6
//此种情况处理程序 此时 ft = 6
// 5 < ft< 7
//average_vane > 112.5 and average_vane < 157.5 并持续一段时间, break;
case: 8
//此种情况处理程序 此时 ft = 8
// 7 9
//average_vane >= 157.5 and average_vane <= 202.5 并持续一段时间 , break; case : 10
//此种情况处理程序 此时 ft = 10
// 9 11
//average_vane > 202.5 and average_vane < 247.5 并持续一段时间, break;
case: 12
//此种情况处理程序 此时 ft = 12
// 11 13
//average_vane >= 247.5 and average_vane <= 292.5并持续一段时间 ,
break;
case: 14
//此种情况处理程序 此时 ft = 14
// 14 15
//average_vane > 292.5 and average_vane < 337.5 并持续一段时间;
break;
default:
//其他情况的处理
//15*22.5 1
//average_vane >=337.5 or average_vane <= 22.5 并持续一段时间,
}
一定要给100分哟,我 写了好久,我争取多几颗星 :)
不知你什么意思,是不是求各段时间内 的均值,那么有简单的方法static double[] all_num = new double[8];
static int[] times = new int[8];
double average_vane;average_vane = ........ 这里完成你的赋值int ft=(int)(average_vane/22.5);
//average_vane 除以 22.5 然后转换为 int
int i_conditions;//第几种情况
switch(ft)
{
case : 2
//此种情况处理程序 此时 ft = 2
i_conditions =0 ;
// 1 < ft < 3
//average_vane > 22.5 and average_vane < 67.5 并持续一段时间, break;
case: 4
//此种情况处理程序 此时 ft = 4
i_conditions =1 ;
// 3 < ft< 5
//average_vane >= 67.5 and average_vane <= 112.5 并持续一段时间, break;
case: 6
//此种情况处理程序 此时 ft = 6
i_conditions =2 ;
// 5 < ft< 7
//average_vane > 112.5 and average_vane < 157.5 并持续一段时间, break;
case: 8
//此种情况处理程序 此时 ft = 8
// 7 9
//average_vane >= 157.5 and average_vane <= 202.5 并持续一段时间 ,
i_conditions =3 ;
//以下类推 i_conditions 从 4 到 7
break; case : 10
//此种情况处理程序 此时 ft = 10
// 9 11
//average_vane > 202.5 and average_vane < 247.5 并持续一段时间, break;
case: 12
//此种情况处理程序 此时 ft = 12
// 11 13
//average_vane >= 247.5 and average_vane <= 292.5并持续一段时间 ,
break;
case: 14
//此种情况处理程序 此时 ft = 14
// 14 15
//average_vane > 292.5 and average_vane < 337.5 并持续一段时间;
break;
default:
//其他情况的处理
//15*22.5 1
//average_vane >=337.5 or average_vane <= 22.5 并持续一段时间,
}all_num[i_conditions] + = average_vane ; //来累加 某种情况 的总和
times[i_conditions =2 ;]++ ;//来累加次数
//以下求平均数程序
double[] average_num = double[8]
for(int i=0 ;i< 8;i++)
{
average_num[i] = all_num[i]/times[i];
}
求得每段时间的 平均值
以上是c的风格,写成c# 得写 成几个成员函数 好些
另外 求第几种情况 i_conditions 也可以不用 switch,因为你注意到实际上ft 是 2的倍数
第一种情况是 1* 2 ,第二种情况是 2*2 .......
这个可以直接提取是第几种情况
那更容易了static double d_allNum;
static int i_allTimes;
double average_vane;
average_vane = ........ 这里完成你的赋值//每次调用以下代码 使静态变量 完成累加
//求和
d_allNum+ =average_vane ;
//累加次数
i_allTimes++
最后取得 均值
double d_average_num = d_allNum / i_allTimes
发现所有的情况我都分析完了哈
100分,今天无聊,挣点分,以后我好用