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

Fläche aus Punkten erzeugen

 

Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.09.2012, 09:27     Titel: Fläche aus Punkten erzeugen
  Antworten mit Zitat      
Hallo zusammen!

Ich steh mal wieder vor einem Problem. ich hab zwar schon so was ähnliches im Forum gefunden (Fläche aus Punkten erzeugen) und das hat mir auch etwas weitergeholfen.
Generell kurz zum Problem, das ich habe: Ich habe eine Messreihe (die Messdaten sollten eigentlich in einem 1° Unterschied sein, das sind sie aber leider nicht, die Länge des Vektors sollte daher auch nur bis 180 sein und nicht bis Länge 200) und möchte meine Punkte auf einen einheitlichen 1° Raster darstellen und dann auch mit diesen Werten weiterrechnen. Der Code, den ich verwendet haben:

Code:

x = 0:1:180;
y = 0:1:180;
[X,Y] = meshgrid(x, y);
Z = griddata(x,y,z, X,Y)
 


Wobei x, y, z meine Messwerte sein sollten.
Diese code habe ich schon von einen anderen Forumsthema.
Aber das Problem, das ich jetzt habe ist, dass ich keinen y-Wert habe. Ich habe einen 1x200 vektor (x) und eine 318x200 Matrix (z). Also z will ich aus den neuen X,Y-werte interpolieren.
Kann ich auch ohne y-wert arbeiten? Oder steh ich mal wieder komplett auf der Leitung?

Danke schonmal.
LG


Harald
Forum-Meister

Forum-Meister


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

ist es so zu verstehen, dass du zu jedem der 200 x-Werte einen Vektor von 318 z-Werten hast, oder wie kommt die Z-Matrix zustande?

Falls ja: wäre es sinnvoll, das so aufzufassen, dass dies z-Werte für y = 1:318 sind? Es kann aber durchaus einfacher sein, das mit interp1 zu lösen, und (zumindest im Geiste) jede Zeile von Z separat zu betrachten.

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.09.2012, 12:05     Titel:
  Antworten mit Zitat      
hi,

ja genau, z setzt sich aus x und y zusammen. habe jetzt y mal mit y = 1:1:318 definiert.

x = 1:length(an); %200
y = 1:1:318;

[/code]
x1 = 1:180;
y1 = 1:318;
%ich möchte meine Daten auf ein 318x180 Raster interpolieren

[X, Y] = meshgrid(x1,y1);
z1 = griddata(x,y,z,X,Y, 'liniear')

Code:


Bekomm jetzt jedoch folgende fehlermeldung:
??? Error using ==> qhullmx
The first input argument must be a double array.

Wenn ich aber mit der keyboard funktion mir die x-variable ansehen, wird mir angezeigt,dass es sich um ein double handelt. Oder versteh ich die Fehlermeldung falsch?

LG
 
Harald
Forum-Meister

Forum-Meister


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

wo wird qhullmx aufgerufen? Das müsste in der Fehlermeldung enthalten sein.
Du kannst ja in der Zeile, in der qhullmx aufgerufen wird, einen Haltepunkt setzen und so sehen, mit welchen Argumenten die Funktion tatsächlich aufgerufen wird.

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.09.2012, 13:48     Titel:
  Antworten mit Zitat      
hey,

das ist es ja, ich benutze diesen Befehl gar nicht. Der Code läuft durch bis zu

Code:

z1 = griddata(x,y,z,X,Y, 'liniear')
 


In dieser Zeile zeigt mir Matlab den Fehler an??

LG
 
Harald
Forum-Meister

Forum-Meister


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

ja, und die Fehlermeldung sollte dann folgende Informationen enthalten:

Welche Funktion ruft griddata intern auf, die möglicherweise intern eine weitere Funktion aufruft, die irgendwann qhullmx aufruft?

Bitte die komplette Fehlermeldung inkl. Zeilennummern kopieren.

Grüße,
Harald

P.S.: nicht dass das die Ursache dieser Fehlermeldung sein sollte, aber es soll wohl 'linear' heißen? Da 'linear' die Default-Methode ist, kannst du das auch weglassen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.09.2012, 13:52     Titel:
  Antworten mit Zitat      
ah, okay verstehe. Die fehlermeldung, die ich bekomme:

Warning: Duplicate x-y data points detected: using average of the z values.
> In griddata at 105

??? Error using ==> qhullmx
The first input argument must be a double array.

Error in ==> delaunayn at 117
t = qhullmx(x', 'd ', opt);

Error in ==> griddata>linear at 151
tri = delaunayn([x y]);

Error in ==> griddata at 120
zi = linear(x,y,z,xi,yi,opt);

Error in ==>
z1 = griddata(x,y,z,X,Y, 'linear')

Wenn ich anstatt von griddata, interp2 nehme, würde es funktionieren. Wo genau ist zwischen den beiden Befehlen der Unterschied?
Danke
 
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.