0001 function [tics SM SD]=GetPOMDPAverageStatistics(prefix,varargin)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037 if nargin==1
0038 start=1;
0039 else
0040 start=varargin{1};
0041 end
0042
0043 k=1;
0044 found=true;
0045 while found
0046 name=sprintf('Results/%s-%u.mat',prefix,start+k-1);
0047 fid=fopen(name);
0048 if (fid<0)
0049 found=false;
0050 else
0051 fprintf('Reading file: %s\n',name);
0052 fclose(fid);
0053
0054 C=load(name);
0055
0056 if k==1
0057 nSteps=size(C.aV,2);
0058 tics=C.tics;
0059
0060 AV=zeros(10,nSteps);
0061 R=zeros(10,nSteps);
0062 nAlpha=zeros(10,nSteps);
0063 nChanges=zeros(10,nSteps);
0064 else
0065 if nSteps~=size(C.aV,2)
0066 error('Size missmatch between different results');
0067 end
0068 end
0069
0070 AV(k,:)=C.aV;
0071 R(k,:)=C.aR;
0072 nAlpha(k,:)=C.nA;
0073 nChanges(k,:)=C.nC;
0074
0075 k=k+1;
0076 end
0077 end
0078 if k>1
0079
0080 r=1:(k-1);
0081 SM.AV=mean(AV(r,:),1);
0082 SD.AV=std(AV(r,:),1,1);
0083
0084 SM.R=mean(R(r,:),1);
0085 SD.R=std(R(r,:),1,1);
0086
0087 SM.nAlpha=mean(nAlpha(r,:),1);
0088 SD.nAlpha=std(nAlpha(r,:),1,1);
0089
0090 SM.nChanges=mean(nChanges(r,:),1);
0091 SD.nChanges=std(nChanges(r,:),1,1);
0092
0093 name=sprintf('Results/%s-results.mat',prefix);
0094 save(name,'tics','SM','SD');
0095 else
0096 error('No data available to compute the average results');
0097 end