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

Extrapolation bei 3D Daten

 

HaveIT
Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 29.04.16
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 14.05.2016, 16:24     Titel: Extrapolation bei 3D Daten
  Antworten mit Zitat      
Hallo,

ich habe eine Matrix vorliegen in der die Spalten jeweils aufgezeichneten Messdaten entsprechen und jeweils Zeilenweise zusammengehören.
die Messpunkte bilden nur einen kleinen Bereich und ich dmöchte das ganze Extrapolieren um einen größeren Bereich abzubilden.
Also mit griddata kann ich zwar wunderbar interpolieren aber das extrapolieren muss ich ja mit interp2 machen.
Jetzt kann ich Spalte 1 und 2 ja als Vektoren verwenden allerdings müsste V dann eine Matrix sein, was bei mir nur ein Vektor ist. Wie bekomm ich das hin ohne die zuordnung zu den Messpunkten falsch zu machen?

Liebe Grüße HaveIT
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.05.2016, 10:01     Titel:
  Antworten mit Zitat      
Hallo,

auch mit interp2 würdest du außerhalb der Region nur immer denselben Wert bekommen.

Versuchs doch mal mit scatteredInterpolant , siehe auch
http://www.mathworks.com/examples/m.....extrapolation-of-3-d-data

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
HaveIT
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 29.04.16
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 16.05.2016, 21:41     Titel:
  Antworten mit Zitat      
hallo danke für die Antwort Smile

ich poste hier mal meine Antwort von einem kleinen Testprogramm für das ich jetzt zeigt gehabt habe Smile
Rein nach dem Ergebnisplot zu urteilen funktioneirt das ganz gut ist aber denke ich noch nicht sehr schön ausprogrammiert. sorrry für die Unlesbarkeit der MAtrix hab das im echten Programm schön untereinanderer würde dashier aber nur unnötig lang machen.



Code:

A=[0 0 5;   0 1 5;0 2 5 ;0 3 5;0 4 5;0 5 5;1 0 5;1 1 4; 1 2 4;1 3 4;1 4 4;2 0 5;2 1 4
   2 1.5 3;2 2 2;2 3 2;2 3.5 3;2 4 4;2 5 5;3 0 5;3 1 4;3 1.5 3;3 2 2;3 3 2;3 3.5 3;
   3 4 4 ;3 5 5];
xq=[];
x2=[0:0.12:6];
yq=[];
vq=[];
F=scatteredInterpolant(Drehzahl(:),Moment(:),Verbrauch(:),'linear','linear')
%yq=[0:0.1:5];
for ii=0:0.1:5
    y2=(ones(length(x2),1)*ii)';
    yq=[yq,y2];
    xq=[xq,x2];
    v2=F(x2,y2);
    vq=[vq,v2];
   
end

figure

[ne,me]=meshgrid(0:0.1:6,0:0.1:5);
beff2=griddata(xq,yq,vq,ne,me,'nearest');
contour(ne,me,beff2,4,'ShowText','on');
grid on
xlabel('x')
ylabel('y')
zlabel('z')
 


LG HaveIT
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.05.2016, 22:48     Titel:
  Antworten mit Zitat      
Hallo,

Verschönerungsvorschlag:
die Vervielfachung könntest du statt über eine for-Schleife mit repmat machen. Das Auswerten von F kannst du auch aus der Schleife ziehen.

Eigentlich sollte es doch auch möglich sein, direkt auf dem gewünschten Gitter zu interpolieren statt nochmal griddata zu verwenden?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
HaveIT
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 29.04.16
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 17.05.2016, 17:43     Titel:
  Antworten mit Zitat      
Code:
for ii=0:5:450
    y2=(ones(length(x2),1)*ii)';
    Momq=[Momq,y2];
   
end
Drehq=repmat(x2,1,91);
Verbq=F(Drehq,Momq);
plot3(Drehq,Momq,Verbq)
xlabel('x')
ylabel('y')
zlabel('z')

[mi,ni]=meshgrid(700:10:4500,0:0.5:450);
beff=griddata(Drehq,Momq,Verbq,ni,mi,'linear');

figure
contour(mi,ni,beff,4,'ShowText','on');


hast du dir das so in etwa vorgestellt? Smile
Bei Momq hab ich das irgendwie nicht so wirklich hinbekommen da sich ja die Werte ändern sollen.
funktioniert ansonsten gleich wie vorher.
Nur hab ich das ganze jetzt von meinen "test"-Daten auf die richtigen übertragen allerdings funktioniert da griddata nicht mehr.
Also mit dem plot3 befehl seh ich linien (siehe anhang)aber irgendwie beim beff steht dan nur noch NaN Sad
hast du da vielleicht eine idee?

LG HaveIT

untitled.fig
 Beschreibung:

Download
 Dateiname:  untitled.fig
 Dateigröße:  354.51 KB
 Heruntergeladen:  426 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.05.2016, 20:24     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Bei Momq hab ich das irgendwie nicht so wirklich hinbekommen da sich ja die Werte ändern sollen.

Wenn du z.B. (0:5:450) nach unten replizierst und das ganze dann mit reshape in einen Vektor umwandelst, hast du den gewünschten Effekt.

Zitat:

Nur hab ich das ganze jetzt von meinen "test"-Daten auf die richtigen übertragen allerdings funktioniert da griddata nicht mehr.

Funktioniert denn der Ansatz von 16.05.2016, 21:41 mit deinen richtigen Daten?
Ohne die Daten zur Verfügung zu haben, ist es schwierig zu sagen, was da schiefgeht. Kannst du die Daten bzw. einen ausreichend großen Ausschnitt davon zur Verfügung stellen?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
HaveIT
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 29.04.16
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 18.05.2016, 17:18     Titel:
  Antworten mit Zitat      
Code:

y2=repmat([0:0.1:5],51,1)
yq=y2(:)
xq=repmat(x2,51,1);
vq=F(xq,yq);
 

so komm ich sogar ohne reshape aus Smile

nein der ansatz steigt irgendwie bei griddata aus ich weiß aber leider nicht warum Sad
siehe pn Wink


Lg HaveIT
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.