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 zwischen quiver-Vektorpfeilen

 

fidelitas
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 19.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.11.2012, 13:32     Titel: Interpolation zwischen quiver-Vektorpfeilen
  Antworten mit Zitat      
Hallo zusammen,

ich habe einen Graphen mit Messdaten für Windgeschwindigkeiten.

https://dl.dropbox.com/u/747458/quiver.pdf

Jedem Pfeil liegen zwei Werte zugrunde. Einmal Richtung Elevation (y-Achse) und einmal Richtung Azimut (x-Achse). Die Werte sind jeweils aus vielen Messwerten gemittelt.
Nun möchte ich, für eine bessere Auflösung, zwischen den Pfeilen interpolieren. Dazu wäre es sinnvoll zuerst zwischen linkem und rechten Pfeil zu interpolieren (denke ich) und hinterher mittels der ermittelten Pfeile die Lücken nach oben und unten zu schließen.
Hier der Code aus dem Programm, mit dem die Pfeile berechnet werden:

Code:
mean_x = mean(cWindDataAll{1,iquiver}(find(cWindDataAll{1,iquiver}(:,2)>=fclassmin & cWindDataAll{1,iquiver}(:,2)<fclassmax),6)); % Stellen suchen, an denen Windgeschw_ges in der Geschwindigkeitsklasse liegt und den Mittelwert aller gefundenen Werte schreiben
            mean_y = mean(cWindDataAll{1,iquiver}(find(cWindDataAll{1,iquiver}(:,2)>=fclassmin & cWindDataAll{1,iquiver}(:,2)<fclassmax),7)); % Stellen suchen, an denen Windgeschw_ges in der Geschwindigkeitsklasse liegt und den Mittelwert aller gefundenen Werte schreiben
            quiver_label(1,ipic)=quiver(mmeasurenet(iquiver,2),mmeasurenet(iquiver,3),mean_x,mean_y,scale,'Color',fig_color,'LineWidth',flinewidth); % Geschwindigkeitsvektoren für alle Messpunkte zeichnen


Kurz das Vorgehen erläutert:
Ich habe ein Referenzanemometer, das durchgehend an der selben Stelle misst. Gleichzeitig misst ein mobiles Anemometer an verschiedenen Stellen. die Mitteltwerte für die Pfeile bestehen jetzt aus Werten des mobilen Anemometers, die gemessen wurden, als am Referenzanemometer die Windgeschwindigkeiten der angegebenen Windgeschwindigkeitsklasse vorherrschten. Somit ist sichergestellt, dass an jedem Messpunkt nur Werte mit einfließen, die für die gewählte Windgeschwindigkeitsklasse relevant sind.
cWindDataAll ist ein cellArray, in dem ich für jeden Messpunkt die Werte stehen habe. In Spalte 2 stehen die Werte für die Gesamtwindgeschwindigkeiten am Referenzpunkt, in Spalte 6 und 7 stehen die Werte für Azimut und Elevation für den mobilen Messmasten. Der scalefaktor wird notwendig, da sonst die Pfeile zu lang werden.
In der Matrix mmeasurenet, in Spalte 2 und 3, stehen die Startpunkte für die quiver-Pfeile, also die Messpunkte.

Ich komme nun auf keinen grünen Zweig, wie ich die Interpolation angehen soll. Kann mir jemand dazu eine Hilfestellung geben? Ich habe noch nie in Matlab interpoliert und möchte gerne für jeden Meter im Messraster (y- und x-Achse) einen Pfeil zeichnen.

Danke schon mal,

Jörg
Private Nachricht senden Benutzer-Profile anzeigen


MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 19.11.2012, 17:40     Titel:
  Antworten mit Zitat      
Hallo,

ist es möglich, dass du eine Grafik erstellst von dem, was du dir vorstellst, gerne auch per Hand und dann einscannen.
Ich denke, es ist hier besser, das Problem durch eine Grafik zu visualisieren. Ich kann deinen Erläuterungen nicht ganz folgen...

Grüße, Marc
Private Nachricht senden Benutzer-Profile anzeigen
 
fidelitas
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 19.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.11.2012, 12:15     Titel:
  Antworten mit Zitat      
Danke erstmal für die schnelle Antwort. Ich habe mal einen Ausdruck gemacht und per Hand eingezeichnet, wie ich mir die Interpolation vorstelle.
Die von Hand eingezeichneten Pfeile sollen über die Interpolation gebildet werden. Die Punkte deuten an, dass dies über das ganze Feld geschehen soll.

https://dl.dropbox.com/u/747458/Interpolation.pdf

Ziel ist:
- Die Startposition der interpolierten Pfeile bestimmen;
- x-Werte für die interpolierten Pfeile;
- y-Werte für die interpolierten Pfeile.
Wenn ich diese Werte habe, dann kann ich problemlos mit mean und quiver die Pfeile zeichnen.

Grüße,

Jörg
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 20.11.2012, 12:41     Titel:
  Antworten mit Zitat      
Wenn die Abstände zwischen den Startpunkten der Vektoren äquidistant sind und man die Schrittweite kennt, kann man die Lücken auffüllen. Man weiß dann auch, wie viele Vektoren in die Lücken eingefügt werden sollen. Nun braucht man noch die Richtung/Steigung der Vektoren.

Beispiel:
Nehmen wir eine Lücke von zwei zu ergänzenden Vektoren und natürlich zwei am Rand befindliche Vektoren. Der linke Vektor hat die Steigung m_l, der rechte m_r. Jetzt teilst du m_r-m_l durch 3 und rechnest m_i=m_l+k*(m_r-m_l)/3 für k=0 bis 3. Dadurch hast du die Steigung linear interpoliert. Da ganze lässt sich auch mit linspace umsetzen:

Code:

m_i=linspace(m_l,m_r,4)
 


Für die Länge gilt das gleich:
Code:

len_i=linspace(len_l,len_r,4)
 


Mit x, der Länge und der Steigung erhält man y.

Edit: Interpolation für die Länge hinzugefügt.
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 - 2025 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.