| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO |
Autor
|
Thema: Variablen überschreiben / neu definieren (3179 mal gelesen)
|
Salvador Mitglied Vermessungstechniker
Beiträge: 7 Registriert: 23.05.2011 ---HARDWARE--- MSI MS-7502 Intel Core 2 Quad Q6600 @ 2.4GHz nVidia GeForce GTX 260 (896MB) 8GB DDR2 RAM GEiL ---SOFTWARE--- Win 7 Pro x64 SP1 EN AutoCAD 2018 x64 EN AutoCAD 2019 x64 EN AutoCAD Civil 3D 2018 x64 EN Leica Geo Office 8.4
|
erstellt am: 10. Jun. 2013 16:00 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich bin gerade dabei, mich in Mathcad einzuarbeiten, aber zu einer Sache finde ich einfach keine Lösung. Wenn ich es richtig verstanden habe: - um eine Variable in einer Funktion nutzen zu können, muss diese vorher (links oder über der Funktion) definiert und mit einem Wert belegt werden (was für mich etwas unpraktisch ist) Nun möchte ich aber eine Funktion definieren, in der sich eine (oder mehrere) Variablen im Laufe meiner Berechnungen ändern. einfaches Beispiel zum veranschaulichen Folgendes passiert:
Code: a := 2 b := 3 x := a * b x = 6 a := 3 b := 4 x = 6
ich erwarte aber das:
Code: a := 2 b := 3 x := a * b x = 6 a := 3 b := 4 x = 12
x sollte an dieser Stelle 12 ergeben, da ich a und b neu definiert habe. Kann mir da jemand weiterhelfen?Vielen Dank im Voraus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Clayton Ehrenmitglied Konstrukteur
Beiträge: 1632 Registriert: 07.02.2004 AMD Athlon 64X2 5600+, 1GB, Nvidia Quadro Pro FX 1100 Inventor Series 10 Mathcad 13
|
erstellt am: 10. Jun. 2013 16:36 <-- editieren / zitieren --> Unities abgeben: Nur für Salvador
Hi, Mathcad rechnet von oben nach unten und von links nach rechts. D.h. wenn Du "a" und "b" neu definierst geht Mathcad nicht zurueck und errechnet ein neues "x", Du muesstest dann auch nochmal x:=a*b tippen. Das heisst aber nicht, dass Du nicht z.B. x(a,b):=a*b festlegen kannst und dann hinterher a:=2, b:=3, x(a,b)=6 und auch a:=3, b:=4 und damit x(a,b)=12 wird Gruss [Diese Nachricht wurde von Clayton am 10. Jun. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Salvador Mitglied Vermessungstechniker
Beiträge: 7 Registriert: 23.05.2011
|
erstellt am: 10. Jun. 2013 17:22 <-- editieren / zitieren --> Unities abgeben:
Danke für die schnelle Hilfe. Das Vorgehen von Mathcad finde ich etwas gewöhnungsbedürftig. Außerdem werden meine "Formeln" dadurch wesentlich größer. Wenn ich z.B. folgende hypothetische Funktion habe: f := 2a^2 * (3/4)b * 5c * 6d^3 * 7e + 8f^4 * 9g *10h^5 * 11i *12j^6 + 13k muss ich: 1. alle Variablen definieren und Werte zuweisen 2. die Formel in "ausführlicher" Form hinschreiben: f(a,b,c,d,e,f,g,h,i,j,k) und bei späteren Berechnungen also so vorgehen, wenn ich eine (oder zwei) Variable(n) ändern will: 1. Variable(n) neu definieren, z.B.: a := 9876,54321 2. Funktion wieder "komplett" hinschreiben: f(a,b,c,d,e,f,g,h,i,j,k) = Ich habe sehr oft den Fall, dass ich eine ziemlich lange Formel mit verschiedenen Werten (meistens nur ein oder zwei) durchrechne, der Rest bleibt wie gehabt. Es ist einfacher, sich eine Funktion "f" zu merken, als z.B. "f(a,b,c,d,e,f,g,h,i,j,k) Also noch Mal zum verdeutlichen meines Problems: z.B. das Volumen eines Körpers, der sich wiederum aus sagen wir 20 Teilkörpern zusammensetzt. Selbst bei einem sehr einfachen Körper ergäbe das eine Funktion mit über 40 Variablen. So eine Formel jedes Mal hinschreiben zu müssen, wenn sich ein Wert ändert, ist für mich fernab jeder Logik. Gibt es in Mathcad keine Möglichkeit solche Berechnungen zu vereinfachen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Axel.Strasser Ehrenmitglied V.I.P. h.c. Selbstständig im Bereich PLM/CAx
Beiträge: 4107 Registriert: 12.03.2001 Früher war vieles gut, und das wäre es heute immer noch, wenn man die Finger davon gelassen hätte!
|
erstellt am: 10. Jun. 2013 18:07 <-- editieren / zitieren --> Unities abgeben: Nur für Salvador
|
Clayton Ehrenmitglied Konstrukteur
Beiträge: 1632 Registriert: 07.02.2004 AMD Athlon 64X2 5600+, 1GB, Nvidia Quadro Pro FX 1100 Inventor Series 10 Mathcad 13
|
erstellt am: 10. Jun. 2013 19:48 <-- editieren / zitieren --> Unities abgeben: Nur für Salvador
|
rmix22 Mitglied
Beiträge: 146 Registriert: 13.09.2013
|
erstellt am: 13. Sep. 2013 18:03 <-- editieren / zitieren --> Unities abgeben: Nur für Salvador
Ich glaube dein Problem ist, dass du zwar andauern davon sprichts/schreibst, Funktionen zu verwenden, du aber tatsächlich nur mir Variablen arbeitest. x:=a+b weist der Variablen x die Summe der Variablen a und b zu, und zwar mit jenen Werten, die a und b an der Stelle der Zuweisung von x haben. Wenn du anschießend a und/oder b änderst, hat das natürlich keinen Einfluß auf den Wert der Variablen x - das wär ja auch schlimm. Anders verhält es sich, wenn du x tatsächlich als Funktion definierst. Alles, du veränderlich halten möchtest wird dieser Funktion dann als Parameter übergeben. Also, wie schon vorgeschlagen etwa fx(a,b):=a+b. Wenn du dann später in deinem Arbeitsblatt zB x:=fx(a,b) schreibst, erhält x die Summe aus den aktuellen Werten der Variablen a und b. Natürlich kannst du auch x:=fx(3,b) oder x:=fx(3,2) verwenden, aber in letzterem Fall wäre x:=5 dann doch vernünftiger ;-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|