I have a data column that has 3630 rows of data. I used the method: [A, B] = rmoutliers (C, 'movmedian', window); to remove the data outliers.
These data were removed and I need them to be interpolated by the average of the entire column of data. How can I do this?

 Akzeptierte Antwort

Turlough Hughes
Turlough Hughes am 2 Mär. 2020
Bearbeitet: Turlough Hughes am 2 Mär. 2020

1 Stimme

Generate some sample data:
C = (1:3630).';
idxout = randperm(3630,500); % random index for outliers
C(idxout) = C(idxout)+2000*(1-2*rand(numel(idxout),1));
Using rmoutliers some of the values are removed:
window = 50;
[A, B] = rmoutliers(C, 'movmedian', window);
Seeing as you've indicated that you only have a column vector of data I assume you want to interpolate using index position as your input for x, you could try the following:
idx = find(~B); % C(idx) is the same as A
D = interp1(idx,A,1:size(C,1)); % Interpolated using index position as x values.
Let me know.

1 Kommentar

Turlough Hughes
Turlough Hughes am 3 Mär. 2020
Did this work for you? If not I suggest uploadibg the variable C as a .mat

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Matheus Brito
Matheus Brito am 4 Mär. 2020

0 Stimmen

Hi Turlough
Yes, it worked very well and I was able to perform the procedures I needed.
Thank you!

3 Kommentare

Turlough Hughes
Turlough Hughes am 4 Mär. 2020
No problem. In that case can you accept it?
Matheus Brito
Matheus Brito am 4 Mär. 2020
Done!
Matheus Brito
Matheus Brito am 9 Mär. 2020
Hi Turlough Hughes, how are you?
Can you help me again? After interpolation, in some cases matlab gave me the following information:
Error using eig
Input matrix contains NaN or Inf.
Do you know why this may be happening? And how can I solve this? So to calculate some variables such as area, amplitude, frequency and others?
Thanks

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Interpolation finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by