WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Interpolation einer Messdatenauswertung mit Scatterdaten

 

Kotzfrosch
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 06.12.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.12.2021, 13:14     Titel: Interpolation einer Messdatenauswertung mit Scatterdaten
  Antworten mit Zitat      
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):
Code:
figure(3), clf
imagesc(squeeze(std(Q,[],3)));
tmp = reshape(squeeze(std(Q,[],1)),1,[]);
tmpz = (tmp-mean(tmp)) / std(tmp);
histogram(tmpz,30)

sensors2interp = tmpz<0;
plot(sensors2interp)
sum(sensors2interp)

U = N(:,1);
V = N(:,2);
F = scatteredInterpolant(U(~sensors2interp),V(~sensors2interp));


Am Ende möchte ich einen (smoothen) Surfaceplot, welcher über meine ganzen Messpunkte interpoliert.

Ich hänge auch mal ein Bild an, wie meine Messdaten verteilt sind.

Vielen Dank schonmal für die Hilfe!

Skizze.png
 Beschreibung:

Download
 Dateiname:  Skizze.png
 Dateigröße:  28.66 KB
 Heruntergeladen:  158 mal
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.12.2021, 15:06     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Kotzfrosch
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 06.12.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.12.2021, 11:57     Titel:
  Antworten mit Zitat      
Hallo Harald,

Vielen Dank schonmal für deine Rückmeldung!

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.

Danke und viele Grüße!

Plot.PNG
 Beschreibung:

Download
 Dateiname:  Plot.PNG
 Dateigröße:  69.76 KB
 Heruntergeladen:  173 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.12.2021, 23:08     Titel:
  Antworten mit Zitat      
Hallo,

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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.