baijiaotuo
新兵答主
11-30
TA获得超过4528个赞
%% 清空环境变量
clc
clear
close all
%%
a=load(''walk1.txt'');%读取数据 % xlsread(‘ ‘);读取execl文件
data=a(1:500,5);%样本数据和测试数据
order=5;%输入数据个数
snum=200;%训练样本数
step=3;%预测步数
input=data(1:snum);
output=data(1+order+step:snum+order+step);
delay=200;%训练样本与测试样本间时延
input1=data(1+delay:snum+delay);
output1=date(1+order+delay+step:snum+order+delay+step);
input_train=zeros(snum,order);input_test=zeros(snum,order);
for i=1:snum
input_train(i,:)=data(i:i+order-1);
input_test(i,:)=data(i+delay:i+delay+order-1);
end
%% RBF神经网络预测
%% 网络建立和训练
net=newrb(input_train'',output'',0.001,100,300,25);
% net=newrbe(input_train'',output'',100);
% net=newgrnn(input_train'',output'',10);
%% 网络验证
ty=sim(net,input_train'');
errR=abs(output-ty'');
ty1=sim(net,input_test'');
errR1=abs(output1-ty1'');
figure
plot(1:snum,output1,''r*-'');
hold on;
plot(1:snum,ty1'',''kx-'');
title(''三步RBF'');
xlabel(''数据序号'');
ylabel(''数据值'');
legend(''实际值'',''预测值'');
figure
subplot(2,1,1);
stem(1:snum,errR1,''r*'');
title(''三步RBF'');
xlabel(''数据序号'');
ylabel(''绝对误差值'');
rbfmean = mean(errR1)
subplot(2,1,2);
stem(1:snum,
abs(errR1./output1),''r*'');
title(''三步RBF'');
xlabel(''数据序号'');
ylabel(''绝对误差率'');
rbfpmean = mean(abs(errR1./output1))*100%%
自己对着改一下。