| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO |
Autor
|
Thema: Laufvariable in Mathcad (5681 mal gelesen)
|
knauper Mitglied Ingenieur
Beiträge: 7 Registriert: 24.03.2013
|
erstellt am: 24. Mrz. 2013 12:36 <-- editieren / zitieren --> Unities abgeben:
Hallo Forengemeinde, ich versuche nun schon länger, in Mathcad eine Matrix mit einer Laufvariablen zu erstellen. Meine Grund-Problemstellung versuche ich mal darzulegen. Angefügt noch eine Grafik der Problemstellung. (ORIGIN=0) Ich habe eine Matrix M mit den Eigenschaften "A", "B" und "C" in der Spalte 0. in den anderen 3 Spalten stehen unterschiedliche Messgrößen. Mit dem Befehl lookup werden alle Werte mit "A", "B" oder "C" den zugehörigen Messgrößen MG1, MG2 oder MG3 zugeordnet. Wenn ich jetzt die Messgröße MG1 auswerten will, bleibt alles bei der Auswertung gleich, außer die Eigenschaftswerte "A", "B" und "C" ändern sich im Programmtext. Wie kann ich das automatisieren bzw. als Laufvariable realisieren um das ganze nicht immer von Hand zu erledigen. Es handelt sich hierbei um sehr viele verschiedene Messgrößen mit unterschiedlichen Eigenschaftswerten, daher muss eine Automatisierung erfolgen. Das rot eingekreiste soll dabei automatisch durchlaufen werden, die anderen Stellen bleiben konstant. Wer hat eine Idee? Gruß Max
[Diese Nachricht wurde von knauper am 24. Mrz. 2013 editiert.] [Diese Nachricht wurde von knauper am 24. Mrz. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
svenfrank Mitglied Entwicklungsingenieur
Beiträge: 101 Registriert: 28.06.2007 Win7, Office 2010, Mathcad 15
|
erstellt am: 25. Mrz. 2013 10:00 <-- editieren / zitieren --> Unities abgeben: Nur für knauper
Hallo, ich bin mir nicht ganz sicher ob ich dich richtig verstanden habe... Ich habe mal in dem angehängten Bild die 9 Formeln die du aufgestellt hast durch eine mit Laufvariablen ersetzt. War es das? Achtung beim EIngeben für Laufvariablen: nicht mit . arbeiten (das gibt nur einen Namen) sondern mit [ (Alt Gr und 8) damit wird auf Index umgestellt. Gruß, Sven Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
knauper Mitglied Ingenieur
Beiträge: 7 Registriert: 24.03.2013
|
erstellt am: 25. Mrz. 2013 11:03 <-- editieren / zitieren --> Unities abgeben:
|
knauper Mitglied Ingenieur
Beiträge: 7 Registriert: 24.03.2013
|
erstellt am: 29. Mrz. 2013 15:16 <-- editieren / zitieren --> Unities abgeben:
Hallo, zu der lookup Funktion habe ich noch eine weitere Frage. Wenn ich nach einzelnen Strings ("A","B","C") oder genauen Zahlenwerten (1,2,3) suche funktioniert das Ganze super. Wie muss ich aber vorgehen, wenn in der 0-ten Spalte statt "A", "B", "C", Zahlenwerte stehen und ich statt einer genauen Zahl oder einem genauen Wort einen Zahlenbereich (z.B. alle Zahlen im Intervall [0;2], ]2;4], ]4;2]) suchen will. Wie muss ich das in Mathcad einprogrammieren? Gruß Max Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
svenfrank Mitglied Entwicklungsingenieur
Beiträge: 101 Registriert: 28.06.2007 Win7, Office 2010, Mathcad 15
|
erstellt am: 03. Apr. 2013 09:54 <-- editieren / zitieren --> Unities abgeben: Nur für knauper
Hallo, ich kenne mich mit der lookup Funktion nicht so gut aus, ich habe sie genau genommen durch den ersten Beitrag hier kennengelernt... Aber ich denke sowas kann man sich als eigene Funktion zusammenstricken. Ich habe das mal im beigefügten Bild gemacht. Matrix mit 2 Bedingungsspalten (Anfang und Ende), per if auf beide Bedingungen prüfen (einmal größer-gleich einmal kleiner um Doppelbelegungen auf Grenzen zu vermeiden). Und entsprechenden Wert ausgeben. Sven Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
knauper Mitglied Ingenieur
Beiträge: 7 Registriert: 24.03.2013
|
erstellt am: 11. Apr. 2013 17:29 <-- editieren / zitieren --> Unities abgeben:
Hallo, sorry für die späte Rückantwort. Mein Mathcad Prime ließ sich nicht mehr öffnen. Jetzt gehts wieder..dein Programmcode ist nicht ganz das, was ich meinte. Ich habe die Problemstellung nochmal im Anhang visualisiert. Er soll mir quasi wenn in Spalte 1 ein Wert 2<=x<=4 steht, die Werte aus Spalte 2 ausgeben mit der lookup-Funktion. Wenn ich nach einem speziellen Wert z.B. 2 suche, funktioniert das ganze. Wie aber kann ich einen Zahlenbereich 2<=x<=4 absuchen lassen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
svenfrank Mitglied Entwicklungsingenieur
Beiträge: 101 Registriert: 28.06.2007 Win7, Office 2010, Mathcad 15
|
erstellt am: 15. Apr. 2013 15:57 <-- editieren / zitieren --> Unities abgeben: Nur für knauper
Hallo, ich glaub ich hab jetzt begriffen wo das Problem liegt... Ich habe gedacht es soll immer ein X-Wert vorhanden sein, der beliebig ist, und der dazu passende eine Ergebniswert ausgegeben werden. Es soll aber für einen Bereich von X-Werten alle möglichen Ergebniswerte ausgegeben werden? Richtig so? Sven Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
knauper Mitglied Ingenieur
Beiträge: 7 Registriert: 24.03.2013
|
erstellt am: 15. Apr. 2013 16:31 <-- editieren / zitieren --> Unities abgeben:
Hallo, ja genau. In meiner Datenbetrachtung funktioniert die lookup-Funktion gut, wenn man nach speziellen Werten, wie "wahr" oder genaue Zahlenwerte sucht. Was mir nicht gelingt, ist nach Zahlenbereichen zu suchen (z.B. von 2-4). Unten habe ich mal den Hilfetext aus Mathcad kopiert. Ich kann aber mit dem "modifier" nichts anfangen, da scheint der Schlüssel in der Problemlösung zu liegen: "lookup(z, A, B, [modifier | f]) – Sucht in einem Vektor oder einer Matrix A nach einem gegebenen Wert z, gemäß den Bedingungen des optionalen Modifizierers, und gibt den bzw. die Werte in der- bzw. denselben Positionen (d.h. mit denselben Zeilen- und Spaltennummern) in der Matrix B zurück. Bei Rückgabe der Werte werden diese, spaltenweise geordnet, in einem Vektor angezeigt, wobei in der linken oberen Ecke von B begonnen und dann nach unten fortgefahren wird." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
svenfrank Mitglied Entwicklungsingenieur
Beiträge: 101 Registriert: 28.06.2007 Win7, Office 2010, Mathcad 15
|
erstellt am: 15. Apr. 2013 16:47 <-- editieren / zitieren --> Unities abgeben: Nur für knauper
Aha. Also in M15 heisst der Hilfetext noch so: (der Befehl ist auf deutsch, weiß nicht ob sich das zu prime ändert) "verweis(z, A, B) Sucht in einem Vektor oder einer Matrix A nach einem gegebenen Wert z und gibt den bzw. die Werte an derselben Position (d.h. mit denselben Zeilen- und Spaltennummern) an eine andere Matrix B zurück. Bei Übergabe der Werte werden diese, spaltenweise geordnet, in einem Vektor angezeigt, wobei in der linken oberen Ecke von B begonnen und dann nach unten fortgefahren wird." Hauptproblem ist aber, dass es da keinen modifier gibt... Wie man das händisch löst fällt mir leider auf die Schnelle auch nichts ein. Sven
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: 16. Apr. 2013 03:14 <-- editieren / zitieren --> Unities abgeben: Nur für knauper
Hi, Du koenntest es z.B. wie im Anhang machen. Problem: "Lookup" wird mit grossem "L" geschrieben, d.h. man muss den Zusatz fuer Datenanalyse haben und ich weiss nicht, ob Prime schon soweit fortgeschritten ist. Gruss [Diese Nachricht wurde von Clayton am 16. Apr. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
knauper Mitglied Ingenieur
Beiträge: 7 Registriert: 24.03.2013
|
erstellt am: 16. Apr. 2013 17:13 <-- editieren / zitieren --> Unities abgeben:
Hi, Super, vielen Dank! Genau das ist es, was ich gesucht hatte. Bei mir funktioniert die Funktion mit großem und mit kleinem "L" bei lookup. Der Knackpunkt war das "range" an der vierten Position. Gibt es da noch andere Befehle? In der Hilfe findet man das nicht. Gruß Max
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: 16. Apr. 2013 19:25 <-- editieren / zitieren --> Unities abgeben: Nur für knauper
|
knauper Mitglied Ingenieur
Beiträge: 7 Registriert: 24.03.2013
|
erstellt am: 16. Apr. 2013 19:33 <-- editieren / zitieren --> Unities abgeben:
|