|
|
Index von Ergebnissen ansprechen ohne Hilfsvariable |
|
jurtsche |

Forum-Century
|
 |
Beiträge: 123
|
 |
|
 |
Anmeldedatum: 26.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.05.2013, 11:42
Titel: Index von Ergebnissen ansprechen ohne Hilfsvariable
|
 |
Hallo,
folgende Frage zum Beispiel will ich die 3. Zahl eines Ergebnisses ansprechen wie folgt (beliebiges Beispiel):
Ich möchte aber nicht immer für alles eine Variable anlegen und es lieber in der Form wie z.B.:
ansprechen können, funktioniert aber nicht.
Die Fehlermeldung "Error: ()-indexing must appear last in an index expression." hilft mir nicht weiter.
Gibt es dazu eine Schreibweise in Matlab oder ist das unmöglich ohne Hilfsvariable?
|
|
|
|
|
jurtsche |
Themenstarter

Forum-Century
|
 |
Beiträge: 123
|
 |
|
 |
Anmeldedatum: 26.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.05.2013, 17:19
Titel:
|
 |
Hallo,
kennt jemand hierbei eine Möglichkeit, oder ist das in Matlab einfach nicht möglich?
LG
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 24.05.2013, 17:29
Titel:
|
 |
mir ist kein weg bekannt. aber jan oder so haben da bestimmt mehr ahnung. du könntest dir aber selber eine funktion schreiben die das macht.
|
|
|
jurtsche |
Themenstarter

Forum-Century
|
 |
Beiträge: 123
|
 |
|
 |
Anmeldedatum: 26.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.05.2013, 17:37
Titel:
|
 |
Hallo Winkow,
Eine Funktion schreiben die das macht... auf die Idee bin ich noch nicht gekommen.
Wobei ich mir noch überlegen muss ob das in jedem Fall immer funktionieren würde.
Danke erstmal.
P.S.: Vielleicht gehts ja mit eval ... dann besser nicht
LG
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 24.05.2013, 17:39
Titel:
|
 |
Zitat: |
Wobei ich mir noch überlegen muss ob das in jedem Fall immer funktionieren würde. |
du kannst in deiner funktion ja die eingangs variablen prüfen und falls es nicht geht eine fehlermeldung zurück geben oder nan oder so
|
|
|
jurtsche |
Themenstarter

Forum-Century
|
 |
Beiträge: 123
|
 |
|
 |
Anmeldedatum: 26.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.05.2013, 19:50
Titel:
|
 |
Nein, das dürfte ich nicht riskieren.
Es müsste schon 100% abdecken.
Berechnungen dauern teilweise mehrere Stunden, wenn dann noch eine Variation dabei ist, würde die Maschine über Nacht kein einziges Ergebnis ausspucken.
LG
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 25.05.2013, 00:31
Titel: Re: Index von Ergebnissen ansprechen ohne Hilfsvariable
|
 |
Hallo jurtsche,
Bisher ist ein direktes Indizieren des Outputs einer Funktion nicht möglich.
Es gibt aber für Cells diese Möglichkeit schon:
Da auch das Extrahieren eines Cell-Elementes durch die geschweiften Klammern intern natürlich eine Funktion ist, sollen die eigentlich benötigten Mechanismen also bereits vollständig vorhanden sein, aber die Syntax erlaubt es nicht.
Eine Funktion dazu wäre:
Und Dein Beispiel-Problem:
Hier kann man auch mehr-dimensionale Indizierungen vornehmen wie üblich. Sogar der ":" funktioniert:
Dabei wird aus dem Doppelpunkt-Operator automatisch der String ':'. Man könnte auch direkt eingeben:
Nun muss jeder Programmierer für sich selbst entscheiden, ob dies nun übersichtlicher ist als:
Gruß, Jan
|
|
|
jurtsche |
Themenstarter

Forum-Century
|
 |
Beiträge: 123
|
 |
|
 |
Anmeldedatum: 26.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.05.2013, 09:33
Titel:
|
 |
Hallo Jan,
das mit dem Cell-Elementen ist genau die Information die ich benötige.
Vielen Dank für die ausführliche Antwort.
LG
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 25.05.2013, 11:41
Titel:
|
 |
Hallo,
wenn es um Performance geht, sollte man statt
folgendes verwenden:
damit nicht der gesamte Vektor durchsucht wird.
Dann kann man natürlich Jans Trick anwenden. Ich kann mir jedoch nicht vorstellen, dass das große Auswirkungen auf die Performance haben wird.
Grüße,
Harald
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 25.05.2013, 23:36
Titel:
|
 |
Hallo Harald,
Aber ich veröffentliche doch keine Tricks im Forum! Das ist nur eine normale Funktion basierend auf dokumentierter Matlab-Methoden. ;-)
Für die Performance bringt meine Funktion keine Vorteile, ich erwarte eher einen Overhead für den Aufruf der Funktion. Aber auch ein direktes Indizieren des Outputs einer Funktion kann keine Vorteile bringen, weil weder Berechnungen gespart noch weniger temporärer Speicher benötigt wird.
Gruß, Jan
|
|
|
|
|
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.
|
|