如何用matlab实现lstm预测
时间: 2023-09-28 19:09:00 浏览: 165

基于长短期神经网络的位移预测,基于LSTM的位移识别
#include<iostream>
using namespace std;
struct pcb{
int pid; //进程ID
int priority; //优先级
int cpu_burst; //CPU执行时间
int arrival_time; //到达时间
int finish_time; //完成时间
int turnaround_time; //周转时间
float weighted_turnaround_time; //带权周转时间
};
void sort(pcb* arr,int n){ //按照进程的优先级从高到低排序
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
if(arr[i].priority<arr[j].priority){
pcb temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
}
void calculate(pcb* arr,int n){ //计算周转时间和带权周转时间
for(int i=0;i<n;i++){
arr[i].turnaround_time=arr[i].finish_time-arr[i].arrival_time;
arr[i].weighted_turnaround_time=(float)arr[i].turnaround_time/arr[i].cpu_burst;
}
}
int main(){
pcb p[5];
for(int i=0;i<5;i++){
cout<<"请输入第"<<i+1<<"个进程的信息:"<<endl;
cout<<"进程ID:";
cin>>p[i].pid;
cout<<"优先级:";
cin>>p[i].priority;
cout<<"CPU执行时间:";
cin>>p[i].cpu_burst;
cout<<"到达时间:";
cin>>p[i].arrival_time;
p[i].finish_time=0;
p[i].turnaround_time=0;
p[i].weighted_turnaround_time=0;
}
sort(p,5); //按照优先级排序
int time=0;
for(int i=0;i<5;i++){
if(p[i].arrival_time>time){ //如果当前进程还未到达,就等待
time=p[i].arrival_time+p[i].cpu_burst;
p[i].finish_time=time;
}
else{ //否则直接执行
p[i].finish_time=time+p[i].cpu_burst;
time=p[i].finish_time;
}
}
calculate(p,5); //计算周转时间和带权周转时间
cout<<"进程ID\t优先级\tCPU执行时间\t到达时间\t完成时间\t周转时间\t带权周转时间"<<endl;
for(int i=0;i<5;i++){
cout<<p[i].pid<<"\t"<<p[i].priority<<"\t"<<p[i].cpu_burst<<"\t\t"<<p[i].arrival_time<<"\t\t"<<p[i].finish_time<<"\t\t"<<p[i].turnaround_time<<"\t\t"<<p[i].weighted_turnaround_time<<endl;
}
float awt=0;
for(int i=0;i<5;i++){
awt+=p[i].weighted_turnaround_time;
}
awt/=5;
cout<<"平均带权周转时间:"<<awt<<endl;
return 0;
}
阅读全文
相关推荐
















