使用最高和最低温度生成一天的温度数据

时间:2017-05-28 05:32:13

标签: c

我需要生成一天的温度,湿度数据,使用最高和最低温度值,我需要生成类似于正弦波的数据,所以这是我尝试过的

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
#include <stdbool.h>

int main ()
{
    int i;
    srand(time(NULL));
    #define randnum(min, max) \
        ((rand() % (int)(((max) + 1) - (min))) + (min))
    double time_min_temp=randnum(1494808200,1494802800);
    double time_max_temp=randnum(1494842400,1494846000);
    double MIN_TEMP=randnum(24,17);
    double MAX_TEMP=randnum(36,41);
    double diff = MAX_TEMP-MIN_TEMP;
    double time_diff = time_max_temp-time_min_temp;
    FILE *fp;char* filename;
    filename="data12.csv";
    fp=fopen(filename,"w+");
    fprintf(fp,"Time , Value");
    double output_range = 180 - 0;

     for(i=0;i<3600*24*10;i=i+3)
     {
        fprintf(fp,"\n");
        double temp = MAX_TEMP - diff*sin(i*90*0.0174533/time_diff);
        double time = time_max_temp+i;
        int rand1 = randnum(1,100);
        if (rand1<5) {//to create glitch in data
            double rand2 = randnum(0,10);
            rand2-=5;
            temp += temp*rand2/1000.0;
        }
        fprintf(fp,"%f",time);
        fprintf(fp,",%f",temp);
     }

}

创建了10天的温度数据,但我不相信它就像一个完美的图形,有没有其他方法可以实现这一点?甚至对于湿度我应用了同样的逻辑,我没有得到正确的值。< / p>

0 个答案:

没有答案