Verfasst am: 14.12.2021, 12:14
Titel: Interpolation einer Messdatenauswertung mit Scatterdaten
Hallo zusammen!
Ich habe folgendes Problem. Ich möchte Messdaten auswerten, welche ich in einer Matrix (die der zweidimensionalen Verteilung der Messdaten entspricht) gespeichert habe. In dieser Matrix sind darüber hinaus sehr viele Felder die den Wert 0 haben (kein Messwert), diese sollen idealerweise nicht geplottet werden.
Zwischen den einzelnen Messwerten (~=0) möchte ich gerne interpolieren.
Meine Idee war nun die scatteredInterpolant-Funktion von Matlab zu verwenden und diese so umzumodeln, dass sie nur auf Punkte angewendet wird, die tatsächlich einen Wert der nicht 0 ist haben.
Hier mein bisheriger Versuch (der noch nicht wirklich funktioniert):
In dieser Matrix sind darüber hinaus sehr viele Felder die den Wert 0 haben (kein Messwert), diese sollen idealerweise nicht geplottet werden.
Dann würde ich sie auf NaN setzen.
Zitat:
Hier mein bisheriger Versuch (der noch nicht wirklich funktioniert):
Was genau funktioniert nicht?
Ich würde bei scatteredInterpolant drei Argumente übergeben: x-Werte, y-Werte und z-Werte.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
ich habe noch einmal ein Bild angehängt. Das ist mein aktueller Output. Hier ist die Matrix zu sehen. Alles was lila ist, ist 0. Im Bereich (1) sollen die Werte dieser "Zig-Zag-Bewegung", also der Messdaten, interpoliert werden. Bereich 2 soll eigentlich gar nicht mit in die Interpolation einfließen und idealerweise komplett entfallen.
Zitat:
Dann würde ich sie auf NaN setzen.
Leider gilt das mit dem 0 auch für die Punkte zwischen den Messwerten, also den Bereich der interpoliert werden soll.
Zitat:
Was genau funktioniert nicht?
Ich würde bei scatteredInterpolant drei Argumente übergeben: x-Werte, y-Werte und z-Werte.
Mein Problem hier ist, dass ich hier eine Matrix von variabler Größe in die scatteredInterpolant-Funktion übergebe (also vermutlich diese Variante: F = scatteredInterpolant(P,v)) Diese Matrix P wird davor mit variabler Größe erstellt und dann von einer for-Schleife mit Werten gefüllt, das Ergebnis ist dann die Matrix mit diesen Zig-Zag-verteilten Werten, welche von 0-Werten umgeben sind, wie im Plot zu sehen ist. P ist praktisch eine riesige zeros-Matrix mit einigen wenigen Messdaten darin.
Wie muss da für scatteredInterpolant die Matrix P im Vergleich zum Vektor v aussehen von ihren Dimensionen? Bzw. was wähle ich als v, wenn in P meine Messdaten bereits enthalten sind?
Meine aktuelle Matrix ist ein 2418x2418 double.
für mich ist schwierig nachzuvollziehen, welche Variablen nun welche Bedeutung haben. Was hat P mit dem anfänglichen Code zu tun? Nennst du es dort Q? Dann bleib doch bitte dabei.
Wenn du die von Null verschiedenen Daten als Basis einer 3D-Interpolation nehmen willst, dann musst du sie als Vektor zusammen mit den zugehörigen x- und y-Werten übergeben.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.