MATLAB: How to use filloutliers for only positive numbers of a data array

filloutlierMATLAB

so if data is stored in Variable 'a'
a = [ 2 1 23 -1 2 5 -36 6 -1]
so it should perform filloutliers only on positve number
when i use b = filloutlier(a) it repalces both '23' and '-36' but i wish it should only perform functionallity on positve number that is '23' and ignore negative numbers.
one method is to filter the data and stored them in a seperate variable or secondly we can remove negative values but because variable 'a' is accessed on many occasions in code so want to perform this on variable 'a' instead of a new variable,
Lets say if i do a(a<0) = 0,
then b = filloutlier(a,'Linear');
it give filloutlier of only positive numbers but my orignal data is change..
kindly suggest a solution… if i again summarize my question basically i want to remove only positve peaks in my data…

Best Answer

  • Try this
    a = [ 2 1 23 -1 2 5 -36 6 -1]
    a(a>0) = filloutliers(a(a>0),'Linear')