Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clc
- A=importdata('seriestemp.dat');
- a = A(:, 1); %1ºcoluna
- b = A(:, 2); %2ºcoluna
- a1 = a;
- b1 = b;
- ind1 = find(isnan(a));
- ind2 = find(isnan(b));
- t = 0:length(a) - 1;
- for k=1:1:size(ind1)
- tt = t(ind1(k)-4:ind1(k)-1);
- aa = a(ind1(k)-4:ind1(k)-1);
- a1(ind1(k)) = interp1(tt,aa,t(ind1(k)),'pchip','extrap');
- end
- for k=1:1:size(ind2)
- tt = t(ind2(k)-4:ind2(k)-1);
- bb = b(ind2(k)-4:ind2(k)-1);
- b1(ind2(k)) = interp1(tt,bb,t(ind2(k)),'pchip','extrap');
- end
- %disp(b1);
- %disp(a1)
- plot(b1);
- %disp(a1)
- Mb = mean(b1);
- Ma = mean(a1);
- Sb = std(b1);
- Sa = std(a1);
- R = corrcoef(a1,b1);
- Meanb1 = repmat(Mb,length(b1),1);
- Meana1 = repmat(Ma,length(a1),1);
- Sigmab1 = repmat(Sb,length(b1),1);
- Sigmaa1 = repmat(Sa,length(a1),1);
- ind3 = find(abs(b1 - Meanb1)>3*Sigmab1);
- ind4 = find(abs(a1 - Meana1)>3*Sigmaa1);
- for k=1:1:length(ind3)
- if(b1(ind3(k)) > 3*Mb)
- b1(ind3(k)) = b1(ind3(k)) - 2.5*Mb;
- end
- if(b1(ind3(k)) < 3*Mb)
- b1(ind3(k)) = b1(ind3(k)) + 2.5*Mb;
- end
- end
- for k=1:1:length(ind4)
- if(a1(ind4(k)) > 3*Ma)
- a1(ind4(k)) = a1(ind4(k)) - 2.5*Ma;
- end
- if(a1(ind4(k)) < 3*Ma)
- a1(ind4(k)) = a1(ind4(k)) + 2.5*Ma;
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement