|
|
Fläche aus Punkten erzeugen |
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.09.2012, 09:27
Titel: Fläche aus Punkten erzeugen
|
 |
|
 |
|
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:
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
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 10.09.2012, 10:57
Titel:
|
 |
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
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.09.2012, 12:05
Titel:
|
 |
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')
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 10.09.2012, 12:45
Titel:
|
 |
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
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.09.2012, 13:48
Titel:
|
 |
hey,
das ist es ja, ich benutze diesen Befehl gar nicht. Der Code läuft durch bis zu
In dieser Zeile zeigt mir Matlab den Fehler an??
LG
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 10.09.2012, 20:36
Titel:
|
 |
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.
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.09.2012, 13:52
Titel:
|
 |
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
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|