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.
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...
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.
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.
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:
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.