Advertisement
OverSkillers

Ficha3

Mar 5th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.30 KB | None | 0 0
  1. clc
  2.  
  3. A=importdata('seriestemp.dat');
  4.  
  5. a = A(:, 1); %1ºcoluna
  6. b = A(:, 2); %2ºcoluna
  7.  
  8. a1 = a;
  9. b1 = b;
  10.  
  11. ind1 = find(isnan(a));
  12. ind2 = find(isnan(b));
  13.  
  14. t = 0:length(a) - 1;
  15.  
  16.     for k=1:1:size(ind1)
  17.         tt = t(ind1(k)-4:ind1(k)-1);
  18.         aa = a(ind1(k)-4:ind1(k)-1);
  19.         a1(ind1(k)) = interp1(tt,aa,t(ind1(k)),'pchip','extrap');
  20.     end
  21.    
  22.     for k=1:1:size(ind2)
  23.         tt = t(ind2(k)-4:ind2(k)-1);
  24.         bb = b(ind2(k)-4:ind2(k)-1);
  25.         b1(ind2(k)) = interp1(tt,bb,t(ind2(k)),'pchip','extrap');
  26.     end
  27.  
  28. %disp(b1);
  29. %disp(a1)    
  30. plot(b1);
  31. %disp(a1)
  32.  
  33. Mb = mean(b1);
  34. Ma = mean(a1);
  35.  
  36. Sb = std(b1);
  37. Sa = std(a1);
  38.  
  39. R = corrcoef(a1,b1);
  40.  
  41. Meanb1 = repmat(Mb,length(b1),1);
  42. Meana1 = repmat(Ma,length(a1),1);
  43.  
  44. Sigmab1 = repmat(Sb,length(b1),1);
  45. Sigmaa1 = repmat(Sa,length(a1),1);
  46.  
  47. ind3 = find(abs(b1 - Meanb1)>3*Sigmab1);
  48. ind4 = find(abs(a1 - Meana1)>3*Sigmaa1);
  49.  
  50. for k=1:1:length(ind3)
  51.     if(b1(ind3(k)) > 3*Mb)
  52.         b1(ind3(k)) = b1(ind3(k)) - 2.5*Mb;
  53.     end
  54.     if(b1(ind3(k)) < 3*Mb)
  55.         b1(ind3(k)) = b1(ind3(k)) + 2.5*Mb;    
  56.     end      
  57. end
  58.  
  59. for k=1:1:length(ind4)
  60.     if(a1(ind4(k)) > 3*Ma)
  61.         a1(ind4(k)) = a1(ind4(k)) - 2.5*Ma;
  62.     end
  63.     if(a1(ind4(k)) < 3*Ma)
  64.         a1(ind4(k)) = a1(ind4(k)) + 2.5*Ma;    
  65.     end      
  66. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement