Matlab Meshgrid Funktion

Neue Frage »

Physinetz Auf diesen Beitrag antworten »
Matlab Meshgrid Funktion
Hallo miteinander!

Folgendes Problem:

Ich habe ein Rechengebiet welches aus Druck-und dazugehörigen Temperaturwerten besteht.
Dieses (annähernd rechteckige) Rechengebiet möchte ich mir nun in Matlab erstellen.

Dazu habe ich zwei Vektoren, jeweils einen für die Temperatur und einen für den Druck erstellt mit einer entsprechenden Schrittweite.
Das Gebiet wird durch einen minimalen und maximalen Druck sowie eine minimale und maximale Temperatur begrenzt.

Über die Funktion "meshgrid" erstelle ich mir nun diese Kombinationsmöglichkeiten (Druck- und Temperaturpunkte)

Da zu einem bestimmten Druckwert z.B. p=20bar nur Temperaturen bis 900K zugelassen sind, möchte ich alle Kombinationen mit p=20bar und Temperatur
größer als 900K quasi löschen.

Meine Frage ist nun, wie ich die "meshgrid" Funktion "filtere" um nur ganz bestimmte Kombinationen zuzulassen?

Diese Kombinationsmöglichkeiten möchte ich anschließend in eine Formel bzw. Funktion f=f(p,T) packen und die Funktionswerte berechnen lassen.

Wie gesagt, ich darf aber nur bestimmte meshgrid Kombinationen verwenden.

Weiß jemand wie das geht? Weiß leider nicht wie ich die logischen Operatoren einbaue.

Vielen Dank für Tipps und Tricks ;-)
zyko Auf diesen Beitrag antworten »
RE: Matlab Meshgrid Funktion
Falls möglich berechne für alle Gridpunkte . Bilde jetzt ein zweidimensionales logisches Feld durch. Selbstverständlich kann dein logisches Bildungsgesetz auch komplizierter sein. Setze anschließend oder , dann werden diese Werte bei einer Darstellung nicht wiedergegeben. An Stelle von "tilde" schreibe ohne Anführungszeichen "~". Leider habe ich dieses Symbol hier in Latex nicht gefunden.
Alternative .
Physinetz Auf diesen Beitrag antworten »

habe es mal versucht, aber an irgendetwas haperts?

Zitat:


dt=1; %Schrittweite Temperatur festlegen
dp=1; %Schrittweite Druck festlegen
p0=2; %Startwert Druck
pmax=20; %Maximalwert Druck
T0=290; %Startwert Temperatur
Tmax=1400; %Maximalwert Temperatur

p=p0:dp:pmax; %Vektor Druck definieren
T=T0:dt:Tmax; %Vektor Temperatur definieren

[X,Y]=meshgrid(p,T);

f=X.*Y; %Beispielfunktion eingeben

lf=p==pmax&&T<=400;
f(~lf)=0;



VIelelicht könntest mir ja nochmal helfen, thx
Physinetz Auf diesen Beitrag antworten »

Zitat:
lf=p==pmax&&T<=400;


Das lf soll ein if sein oder? Wink und dann ohne gleichheitszeichen?
zyko Auf diesen Beitrag antworten »

lf steht für logisches Feld. Ein logisches Feld hat in matlab nur die Werte true oder false, auch wenn die Werte als 1 bzw. 0 angezeigt werden, ist das etwas anderes als ein nichtlogisches Feld mit Werten 0 und 1. Wird ein logisches Feld als Index einer Matrix benutzt, dann heißt das, dass nur die Matrixelemente betrachtet werden sollen, für die lf==true gilt. Das logische Feld muss dann die gleichen Dimensionen wie die Matrix besitzen.
Achtung bedeutet die Negation von lf: true-->false; false-->true;
Wenn X die p-Werte beschreibt und Y die T-Werte, dann muss deine logische Bedingung (alle erlaubten Werte)
lf = X<=pmax && Y<=400;

Eine Zuweisung
B = f(lf) erzeugt einen eindimensionalen Vektor mit soviel Elementen, wie lf 'true's hat.
zyko Auf diesen Beitrag antworten »

Siehe folgende Beispiele
Zitat:

dt=1; %Schrittweite Temperatur festlegen
dp=1; %Schrittweite Druck festlegen
p0=2; %Startwert Druck
pmax=20; %Maximalwert Druck
T0=290; %Startwert Temperatur
Tmax=1400; %Maximalwert Temperatur

p=p0:dp:pmax; %Vektor Druck definieren
T=T0:dt:Tmax; %Vektor Temperatur definieren

[X,Y]=meshgrid(p,T);

f=X.*Y; %Beispielfunktion eingeben

lf= (X<=pmax) & (Y<=400);
% f(~lf)=0;
% figure;surf(X,Y,f);
f(~lf)=NaN;
figure;surf(X,Y,f,'EdgeColor','none');

%% anderes Beispiel
f=X.*Y; %Beispielfunktion eingeben

alpha = 1; % beliebiger Gewichtungsfaktor

beta = 10^(-4); % beliebiger Gewichtungsfaktor

lf= (alpha*X.^2+beta*Y.^2)<200;
% f(~lf)=0;
% figure;surf(X,Y,f);
f(~lf)=NaN;
figure;surf(X,Y,f,'EdgeColor','none');


Bei kleinerer Schrittweite würde die Berandung mit dem Rand eines Viertelkreises übereinstimmen.
 
 
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »