Schleife? < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Nochmal ein ganz triviales Problem:
Ich habe mehrere Werte und will die über einer Schleife in ein Kennfeld interpolieren. und die ermittelten Werte speichern.
geg. Werte:
Kennfeld: (X,Y,Z)
Werte:
Xin=viele Werte
Yin=viele Werte
Wie geht das?
|
|
|
|
Hallo,
du kannst einen einzelnen Wert für (x0, y0) interpolieren mit:
z0 = griddata(X, Y, Z, x0, y0);
Falls noch extrapoliert werden muss, scheint es in begrenztem Maße mit der Methode 'v4' zu gehen. Schau am besten selbst in die Hilfe zu griddata.
Das Ganze in eine Schleife gepackt, fertig!
Gruß
Martin
|
|
|
|
|
Danke schön. Den Befehl kenn ich aber schon, mir geht es um die Schleife. die krieg ich nicht hin......
P.S. macht es einen Unterschied ob ich griddata oder interp2 benutze?
|
|
|
|
|
Hallo,
> Den Befehl kenn ich aber schon, mir geht es um die Schleife. die krieg ich nicht hin......
Echt? Meinst du das? :
for i=1:length(Xin),
Zin(i) = griddata(X, Y, Z, Xin(i), Yin(i);
end;
> macht es einen Unterschied ob ich griddata oder interp2 benutze?
Jaaa! interp2 erwartet eine komplette Matrix von z-Werten. D.h., du musst für alle (x,y)-Paare Messwerte haben. griddata nimmt, was es bekommt, also über gibst du hier nur z-Werte für die (x,y)-Paare, die dir tatsächlich vorliegen.
Welcher Fall bei dir vorliegt, war mir nicht ganz klar. Falls die Vorausetzungen für interp2 gegeben sind, solltest du diese Funktion benutzen.
Gruß
Martin
|
|
|
|
|
Danke schön, das hab ich gemeint.
Hast du mir vielleicht auch einen Lösungsvorschlag für mein Problem mit dem transponieren? Ich wollte das am Wochenende erledigen und krieg es nicht hin.
gegebenes Kennfeld, errechnet aus x und y = z.
nun kennfeld transponieren (z mit x), jetzt muss z und y = x ergeben. Und das eben an diesem Kennfeld überprüfen.
mfg
|
|
|
|
|
Hallo,
was hat das mit Transponieren zu tun? Egal, wenn du eine Funktion x->z umkehren willst, dann muss sie im gesamten Definitionsbereich streng monoton sein. Das bedeutet, für jedes y darf der z-Wert mit x nur steigen oder nur fallen. Ist das hier wirklich gegeben?
Da wi es hier nur mit diskreten Werten zu tun haben, müssen wir uns nur sicher sein, dass pro y-Wert alle z-Werte verschieden sind.
Dann könnte man mit griddata(z,y,x,z0,y0) immer für ein (z0,y0)-Paar den x-Wert berechnen. Ob das allerdings in der Näherung dem ursprünglichen Wert entspricht, weiß ich nicht.
Gruß
Martin
|
|
|
|
|
Hiermit hat es nichts zu tun. Ich hoffte du kannst mir bei diesem Probelm helfen:
https://matheraum.de/read?i=236066
P.S. wie kann ich an der Colorbar definieren, dass bei z-Wert 0 immer grün sein soll und >< 0 von gelb nach rot?
|
|
|
|
|
Moment mal! Du hast doch etwas von "transponieren" geschrieben und das war meine Antwort darauf.
Das mit der Colorbar schaue ich mir an, verspreche aber gar nichts...
Gruß
Martin
|
|
|
|
|
Das mit dem "Transponieren" habe ich leider gar nicht verstanden....
gegeben ist folgendes:
x=0:10:100;
y=-20:10:20;
z=[
10 10 10 10 10
30 30 30 30 30
20 20 20 20 20
25 25 25 25 25
35 35 35 35 35
40 40 40 40 40
32 32 32 32 32
28 28 28 28 28
21 21 21 21 21
16 16 16 16 16
0 0 0 0 0
];
Nun wird dieses Kennfeld transponiert.
x-Achse mit z-Achse. Welcher Fehler entsteht durch den Befehl Matlab-Befehl transpose?
Also das gegebene Kennfeld transponiere ich (z mit x-Achse). Wie bekomme ich nun die dadurch entstandene Abweichung heraus?
Kennfeld:
x-Wert1 und y-Wert1 ergibt z-Wert 1
x-Wert2 und y-Wert2 ergibt z-Wert 2
x-Wert3 und y-Wert3 ergibt z-Wert 3
etc.
transponierte Kennfeld:
z-Wert1 und y-Wert1 müßte ergeben x-Wert1
z-Wert2 und y-Wert2 müßte ergeben x-Wert2
z-Wert3 und y-Wert3 müßte ergeben x-Wert3
etc.
Und das eben vergleichen. Ob die Rückrechnung über das transponierte Kennfeld identisch ist??
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 22:20 Mi 07.03.2007 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|