MATLAB: durch interpolation zu ersetzen fehlender Werte (NaN)

Habe ich cell-array, die jeweils eine Sequenz von Werten als einen zeilenvektor. Die Sequenzen enthalten einige fehlende Werte vertreten durch NaN.

Möchte ich alle ersetzen, NaNs über irgendeine Art von interpolation, wie kann ich dies in MATLAB? Ich bin auch offen für andere Vorschläge, wie der Umgang mit diesen fehlenden Werten.

Betrachten Sie dieses Beispiel Daten, um das problem zu veranschaulichen:

seq = {randn(1,10); randn(1,7); randn(1,8)};
for i=1:numel(seq)
    %# simulate some missing values
    ind = rand( size(seq{i}) ) < 0.2;
    seq{i}(ind) = nan;
end

Die resultierenden Sequenzen:

seq{1}
ans =
     -0.50782     -0.32058          NaN      -3.0292     -0.45701       1.2424          NaN      0.93373          NaN    -0.029006
seq{2}
ans =
      0.18245      -1.5651    -0.084539       1.6039     0.098348     0.041374     -0.73417
seq{3}
ans =
          NaN          NaN      0.42639     -0.37281     -0.23645       2.0237      -2.2584       2.2294

Edit:

Basiert auf den Antworten, ich denke, es ist schon eine Verwirrung: offensichtlich bin ich nicht die Arbeit mit zufälligen Daten, der code oben ist lediglich ein Beispiel, wie die Daten strukturiert sind.

Den eigentlichen Daten ist eine gewisse form der verarbeiteten Signale. Das problem ist, dass während der Analyse, meine Lösung würde fehlschlagen, wenn die Sequenzen enthalten fehlende Werte, daher die Notwendigkeit für Filterung und interpolation (die ich bereits als mit den Mittelwerten der einzelnen Sequenz, um zu füllen die Lücken, aber ich bin der Hoffnung, für etwas stärker)

  • In deinem Beispiel denke ich, Sie würden sein hart gedrückt, um einen Weg finden, um die fehlenden Werte interpolieren. Interpolation setzt Voraus, dass es irgendeine Art von Beziehungen zwischen den Daten-Punkten. Oft kann dies sein, dass Sie aus einer Zeit stammen-Serie (also eine gute Vermutung ist, dass der fehlende Teil kann abgeleitet werden von dem nahegelegenen Punkte). In deinem Beispiel Daten, die Sie versuchen zu erraten, ein "coin-flip" nur auf der Grundlage von anderen coin-flips. Wenn Sie können, geben Sie uns mehr Informationen über Ihre spezifischen Beispiel können wir helfen mehr.
  • Ich glaube, er war nur mit random-Daten als ein Beispiel für die Menschen, um mit zu spielen.
InformationsquelleAutor Dave | 2010-09-02
Schreibe einen Kommentar