我需要生成一天的温度,湿度数据,使用最高和最低温度值,我需要生成类似于正弦波的数据,所以这是我尝试过的
#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>