|
PHEV |
Forum-Fortgeschrittener
|
|
Beiträge: 67
|
|
|
|
Anmeldedatum: 10.12.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.02.2014, 10:54
Titel: Graph mit zwei Variablen
|
|
Hallo ich möchte eine total simple Funktion mit Matlab berechnen und plotten.
Ich habe damit leider keine Erfahrungen und versuche seit einer Stunde verzweifelt alles, aber bekomme ausschließlich Fehler.
Auf wolframalpha bekomme ich meine Funktion wie gewünscht geplottet, allerdings eingeschränkt, insbesondere in der Darstellung.
Die Funktion ist:
f(x,y)=x*y>5000
function z(x,y)=x*y>10
h=0.02;
x= 0:h:3000;
y= 0:h:200
Dies führt jedoch zu gar nichts.
Ich habe auch mal angefangen ganz simpel in Matlab funktionen zu ploten.
Während
x = 0:0.5:2000;
y=sqrt(x)
plot(y)
wunderbar geht
klappt
y=x^2 nicht
y=x^(1/2) auch nicht usw.
ich habe leider keine Ahnung, kann mich aber auch nicht an tutorials durchhangeln, weil irgendwie zu viel nicht geht und ich nicht weis wieso.
|
|
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 27.02.2014, 11:10
Titel:
|
|
Es liegt wohl an dem Punkt:
Andreas
|
|
|
PHEV |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 67
|
|
|
|
Anmeldedatum: 10.12.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.02.2014, 11:18
Titel:
|
|
Hallo,
das habe ich mittlerweile auch rausgefunden, aber ich bekomme trotzdem kein ergebnis für mein Problem. Ich kann aber f(x)=x.^2 plotten
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 27.02.2014, 11:29
Titel:
|
|
OK, dann bitte einfach en Update mit dem aktuellen Code und was schief läuft.
Andreas
|
|
|
PHEV |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 67
|
|
|
|
Anmeldedatum: 10.12.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.02.2014, 11:35
Titel:
|
|
ezplot('x*y-52666=0',[0,150,0,2500])
liefert schon das was ich möchte
Aber nur als Graph.
Ich möchte den Bereich größer gleich 52666 abgebildet haben. Idealerweise dreidimensional.
Meine funktion ist quasi:
a=b*c
und ich will abgebildet haben ab wann b*c größer als 5266 ist.
Wie das geht weiß ich wie gesagt nicht. Mein bisheriger Code kann vollkommener quatsch sein weil ich null ahnung habe
|
|
|
PHEV |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 67
|
|
|
|
Anmeldedatum: 10.12.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.02.2014, 11:37
Titel:
|
|
Ich habe mal versucht:
[X,Y]=meshgrid(0:1:120, 0:1:2500);
Z=X.^2*Y<52666
surf(X,Y,Z)
liefert nichts irgendwie
aber vom prinzip her müsste es so gehen oder nicht?
edith:
[X,Y]=meshgrid(0:1:120, 0:1:2500);
Z=X.^2*Y;
surf(X,Y,Z);
müsste jetzt noch so ergänzt werden, dass die Werte für Z>52666 anders dargestellt werden. Aktuell ist alles einfach nur schwarz.
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 27.02.2014, 12:09
Titel:
|
|
Schwarz ist es weil die Schritte arg eng sind:
Andreas
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 27.02.2014, 12:15
Titel:
|
|
Und das andere:
Hier: All Werte die kleiner als 52666 zu Null setzen - sind ja nicht viele.
Andreas
|
|
|
PHEV |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 67
|
|
|
|
Anmeldedatum: 10.12.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.02.2014, 15:37
Titel:
|
|
Super! Genau das was ich wollte ! Danke
Wenn ich die Schrittweite auf 10 stelle, wird die Kante sehr sehr grob. Auf 1 geht es so, aber das meshgrid ist schon zu fein. Ich hätte es gerne ähnlich wie bei FEM, ich weis nicht ob das geht.
Idealerweise aller werte größer als der Graph also eine saubere linie.
Mein zweites Problem ist, dass ich den Bereich auch gerne nach oben begrenzen würde.
Z2=Z.*(Z<208800) funktioniert, jedoch ist dann der untere Bereich wieder gefüllt.
Z3=Z.*(52668<Z<208800) funktioniert nicht.
Ich weiß nicht wie dies in Matlab funktioniert. Ich müsste quasi eine und verknüpfung einbauen.
|
|
|
PHEV |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 67
|
|
|
|
Anmeldedatum: 10.12.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.02.2014, 16:27
Titel:
|
|
ich habe mal zwei grafiken angefügt. Wenn ich
Z(Z>200)=0 ergänze kommt es meinem wunsch schon sehr nahe.
( Ich hab beziehe mich jetzt auf einen anderen wert ist ja im prinzip egal)
Ich möchte die Werte zwischen 60 und 200 dargestellt haben, und zwar idealerweise als höhe von 0 bis zu ihrem wert.
( Es handelt sich dabei um den Abgasmassenstrom in abhängigkeit von Drehzahl und relativer Füllung)
Ich möchte also quasi für den Bereich größer 60 und kleiner 200 angezeigt bekommen
Das wäre echt cool
Beschreibung: |
|
Download |
Dateiname: |
bsp2.png |
Dateigröße: |
190.83 KB |
Heruntergeladen: |
368 mal |
Beschreibung: |
|
Download |
Dateiname: |
bsp.png |
Dateigröße: |
198.91 KB |
Heruntergeladen: |
352 mal |
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 28.02.2014, 11:54
Titel:
|
|
Einmal zu den Gitterlinien. Wenn Die irgendwann zu viel sind. Grundsätzlich muss man die ja nicht mit darstellen:
Zu den abgeschnittenen Graphen. So ganz verstehe ich das noch nicht. Grundsätzlich gibt es zwei Ansätze: Entweder manipuliert man die zugrunde liegenden Daten so, dass ein Darstellungsbefehl das gewünschte anzeigt, oder man überlagert mehrere Plots (hold on) geeignet.
Andreas
|
|
|
PHEV |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 67
|
|
|
|
Anmeldedatum: 10.12.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.02.2014, 13:05
Titel:
|
|
Danke,
also nochmal:
Die obige (in Paint) manipulierte Abbildung zeigt das was ich gern hätte.
Ich schaffe es nicht die Daten entsprechend zu manipulieren, dass quasi ein Volumenkörper entsteht. Ich hab schön überlegt das eben in CAD zu zeichnen.
Zu den linien: Es wäre super wenn die Ränder zwischen den elementen interpolieren würden, da es so sehr abgehackt aussieht (auch wenn ich die schrittweite auf 0.1 stelle ist es immernoch keine linie.
|
|
|
PHEV |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 67
|
|
|
|
Anmeldedatum: 10.12.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.02.2014, 13:06
Titel:
|
|
Andreas Goser hat Folgendes geschrieben: |
Einmal zu den Gitterlinien. Wenn Die irgendwann zu viel sind. Grundsätzlich muss man die ja nicht mit darstellen:
Zu den abgeschnittenen Graphen. So ganz verstehe ich das noch nicht. Grundsätzlich gibt es zwei Ansätze: Entweder manipuliert man die zugrunde liegenden Daten so, dass ein Darstellungsbefehl das gewünschte anzeigt, oder man überlagert mehrere Plots (hold on) geeignet.
Andreas |
Mir ist gerade aufgefallen das Mesh(X,Y,Z2) ebenfalls zu dem ergebnis kommt
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 05.03.2014, 22:18
Titel:
|
|
Hallo PHEV,
Bitte nutze die Code-Umgebung für Code - Danke!
Zitat: |
Z3=Z.*(52668<Z<208800) funktioniert nicht. |
Immer, wenn "funktioniert nicht" im Forum verwendet wird, ist eine nähere Erklärung erfoderlich.
Dies hier funktioniert nicht, weil es von rechts nach links ausgewertet wird:
Du meinst:
Gruß, Jan
Ich weiß nicht wie dies in Matlab funktioniert. Ich müsste quasi eine und verknüpfung einbauen.[/quote]
|
|
|
|
|
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.
|
|