Verfasst am: 04.03.2013, 15:00
Titel: Variable innerhalb einer Formel ändern
Hallo,
ich versuche gerade die Variable innerhalb einer Formel zu ändern.
Leider bin ich absolute Matlab Anfängerin und wäre deshalb dankbar für eure Tipps.
Foglendes:
in einer Formel: z=sqrt( 220-(20-y)^2)
Wie kann ich nun den y-Wert verändern(6 Werte), dass die Formel 6 verschiedene Werte für z ausgibt?
Diese sollte ich wenn möglich vergleichen und das Minimum ausgeben.
Hat irgendjemand eine Idee wie ich das lösen könnte?
Für ein Programmansatz wäre ich dankbar.
kannst du y als Vektor definieren und bekommst automatisch einen Vektor der entsprechenden z-Werte.
Die Minimumsuche kannst du dann mit dem Befehl min machen.
ist es denn auch möglich im folgenden Programm die x und y variable in einem Raster von -20 bis 20 zu variieren und die jeweiligen z-Werte angezeigt zu bekommen?
Also je ein z-Wert für jede Variablenänderung?
Ja genau so, nur würde ich jetzt gerne jeweils das Minimum der z-Werte darstellen. Ich habe es mal so versucht:
(Hab den Bereich verkleinert dass es übersichtlicher wird)
Damit bekomme ich nun 6 Werte(entsprechend der Anzahl meiner ax und ay Werte), die jeweils das gesamte Minimum aller errechneten z-Werte darstellen.
Ich bräuchte es aber nun dass das von jedem z Wert einzeln geschieht. Sprich jede Möglichkeit aus der x-y Kombination ergibt 6 Werte für z.
Davon bräuchte ich jeweils das Minimum.
Nur leider sind meine Kenntnisse dafür bei weitem nicht ausreichend Wink
Weiß jemand eine Lösung?
Letztendlich würde ich gerne die von den z-Werten aufgespannte Fläche in Abhängikeit der x-y Werte im 3dimensionalen Raum x-y-z darstellen.
Zum Einen bräuchte ich dazu eine Möglichkeit quasi die ganze Fläche x-y mit einer Schleife abzudecken (bisher ists ja nur die Diagonale), zum Anderen würde ich das Ergebnis dann wie gesagt gerne durch eine Fläche im Raum darstellen, oder zumindest einer Punkteschar.
Ist das denn überhaupt möglich?
(Natürlich wird der Bereich der x und y Variablen dazu dann wieder vergrößert )
So erhält man (für die Bsp-Daten) eine 5x6x5-Matrix.
Die Spalten (6 an der Zahl; 5x5=25 mal; also 150 z-Werte) sind die z-Werte in Abh. von x und y. Die Zeilen (erste 5) sind y-Werte von -2 bis 2. Die dritte Dimension der Matrix sind dann die x-Werte ebenfalls von -2 bis 2
Kann sein, dass ich das alles missverstehe, bin schon n bissl müde. Ist das, was du brauchst?
Für den Graph, schau dir mal mesh/surf an (ich frage mich gerade, ob man statt der Schleifen auch [x,y]=meshgrid() verwenden könnte, geh jetzt aber lieber erst mal unter die dusche )
Ja, so hab mich mir das vorgestellt, danke Seban, hast dir ja echt ne Menge Gedanken gemacht
Ich hab jetzt mal ein bißchen an der Version mit der Schleife rumgebastelt.
Nun stehe ich vor dem nächsten Problem
Ich habe zusätzlich eine zweite Variable für L eingeführt, also ein Lmax und ein Lmin. Mein Programm sieht dann so aus:
Ich dachte mit der Hold on Funktion kann ich beide Diagramme in einer Grafik abbilden, leider ist das nicht der Fall.
Lasse ich es einzeln zeichnen, nehme also die mesh Funktion für eins der beiden raus, zeichnet mir das Programm mein gewünschtes Bild. Mache ich es aber mit beinden Funktionen, stellt es mir nur 2 Ebenen da...
Weiß jemand wo der Fehler liegen könnte?
Und dann noch was. Ich würde den Bereich nun gerne erweitern, also von [-2:2] bis auf [-300:300]. Wäre super wenn mir jemand weiter helfen könnte
Die 2 Ebenen sind das, was du suchst, die Skalierung ist bloß ungünstig. Für bspw. Lmin=418 siehst man das gut. Du kannst aber bspw mit subplot 2 Plots in einer figure darstellen
Melissa_ hat Folgendes geschrieben:
Und dann noch was. Ich würde den Bereich nun gerne erweitern, also von [-2:2] bis auf [-300:300]. Wäre super wenn mir jemand weiter helfen könnte
Du musst nur '-2:2' durch '-300:300' ersetzen. ABER: Die z werden iwann komplex und mesh mag keine komplexen Zahlen.
Ich hatte das mit dem vergrößern des Bereichs bisher immer in dem oberen der beiden Programme versucht, da ists anscheinend nicht so einfach.
In dem unteren aber, das ohne Schlefe arbeitet ists wirklich kein Problem.
Ich versuch jetzt mal in das Programm die Lmin Variable rein zu basteln.
Danke schonmal für deine Hilfe, ich hoffe dass ichs so nun hinbekomme
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
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.