请教个问题,请各位不吝赐教

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
parry_all
帖子: 732
注册时间: 2008-07-01 9:53
来自: Dunedin, New Zealand
送出感谢: 1 次
接收感谢: 3 次
联系:

请教个问题,请各位不吝赐教

#1

帖子 parry_all » 2011-04-18 18:11

现在遇到一个问题,自己看这个问题感觉应该不难,但是想了半天,还是没有什么思路。问题是这样的:
img-4181721-0001.png
如上面的图所示,(a)为我已经拥有的一组Time-series数据,将数据呈现在坐标上就是图(a)所示的样子,现在我想经过一系列条件,满足后输出如图(b)的样子,也就是数据在开始时大于730的情况下输出500,并且随着时间的变化,数据不低于730就输出500;但是只要(a)里面的数据低于730,输出就从500变为350,并且一直在达到1000之前维持输出350,一旦过了1000之后就又变成输出500,直到数据低于730之前保持输出500……以此类推。

我很想知道解决问题的思路是怎样的?最好可以帮忙提供一下shell或者是python的代码,由于本人基本不会编程,所以很想参考着学习一下。

谢谢大家了!
心如苍井空似水,意比松岛枫叶飞。窗外武藤兰花香,情似饭岛爱相随。
fnan
帖子: 919
注册时间: 2009-07-01 22:04
送出感谢: 0
接收感谢: 13 次

Re: 请教个问题,请各位不吝赐教

#2

帖子 fnan » 2011-04-19 5:32

很简单的,无非是输出影响触发条件。
#!/bin/bash

b=0
a=0
function f_condition
{
if [[ $b -eq 0 ]];then
if [[ $a -gt 730 ]];then
b=500
fi
elif [[ $b -eq 500 ]];then
if [[ $a -lt 730 ]];then
b=350
fi
elif [[ $b -eq 350 ]];then
if [[ $a -gt 1000 ]];then
b=500
fi
fi
echo "$a -- $b"
}
f_condition
while true;do
a=$(($RANDOM%2000+1))
sleep 1
f_condition
done
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
头像
parry_all
帖子: 732
注册时间: 2008-07-01 9:53
来自: Dunedin, New Zealand
送出感谢: 1 次
接收感谢: 3 次
联系:

Re: 请教个问题,请各位不吝赐教

#3

帖子 parry_all » 2011-04-19 18:45

谢谢#2楼!

等周末的时候,好好消化消化。

:em11
心如苍井空似水,意比松岛枫叶飞。窗外武藤兰花香,情似饭岛爱相随。
回复

回到 “Shell脚本”