|
|
Logical Indexing mit mehrere 'logical'-Matritzen |
|
madlab |

Forum-Fortgeschrittener
|
 |
Beiträge: 86
|
 |
|
 |
Anmeldedatum: 15.05.12
|
 |
|
 |
Wohnort: Freiburg
|
 |
|
 |
Version: 7.11 (R2010b)
|
 |
|
|
 |
|
Verfasst am: 19.02.2013, 14:27
Titel: Logical Indexing mit mehrere 'logical'-Matritzen
|
 |
Hallo Leute,
ich sitze gerade an einem vermutlich recht trivialen Problemchen. Ich möchte einen Datensatz mittels logical indexing über viele diverse Masken untersuchen. Ein Beispiel wäre:
dann erhalte ich einen Vektor mit allen Werten die die Bedingung aus mask1 erfüllen. Soweit so gut! Mein Problem ist nun, dass ich sehr viele Masken habe (mask1 bis maskn) und diese in einer Schleife nutzen möchte. Ich dachte zuerst sie alle in einer 'cell' abzulegen:
Wie komme ich jetzt aber wieder an meine Werte?
Für myMasks(1) erhalte ich z.B. ans = [200x500 logical]
aber nicht mehr die Werte die dahinter stecken.
Ist der Ansatz mit cell evtl falsch um meine Aufgabe zu lösen oder wie komme ich jetzt wieder an die echten Werte (also die Matritze) von mask1 dran?
Wäre dankbar für alle Hinweise evtl. auch zu Umsetzungen mit geiegneteren Datentypen.
Viele Grüße,
Mad
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 19.02.2013, 14:36
Titel:
|
 |
Hallo,
wenn die Anzahl festgelegt ist:
Wenn die Anzahl nicht festgelegt ist und die Masken in einem Cell Array masks abgelegt sind:
Die neue Maske kannst du dann genauso verwenden wie mask1. Natürlich ist für das ganze die Voraussetzung, dass alle Masken die gleichen Dimensionen haben.
Grüße,
Harald
|
|
|
madlab |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 86
|
 |
|
 |
Anmeldedatum: 15.05.12
|
 |
|
 |
Wohnort: Freiburg
|
 |
|
 |
Version: 7.11 (R2010b)
|
 |
|
|
 |
|
Verfasst am: 19.02.2013, 15:01
Titel:
|
 |
Hi Harald,
ich glaube ich habe mich etwas missverständlich ausgedrückt. Totzdem hast du es geschafft mir mit deinem Kommentar die Antwort zu liefern
Meine Absicht war es nicht, die Masken elementweise zu verknüpfen, sondern lediglich auf ihre Inhalte über die Cell zugreifen.
Das geht, wie von dir beschrieben mit dem Zugriff über die gescheiften Klammern.
z.B.:
masks{1} bis mask{n}
Ich habe es dooferweise nur mit masks(1) bis masks(n) versucht. Die runden Klammern ergeben dann eben immernur den Datentyp als Rückgabe (z.B. <200x500 logical>). Ich wollte aber die Echten Werte (also die Logic-Matrix mit 0 und 1) die dahinterstecken. Wieso das so ist mit geschweifter und runder Klammer, weis ich zwar noch nicht aber es funktioniert
Der Tip mit dem verknüpfen von Masken, wird mir aber in Zukunft auch noch nützlich sein, da ich irgendwann die Masken kombinieren will
Besten Dank für deine schnelle Hilfe!
Grüße,
Mad
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 19.02.2013, 15:23
Titel:
|
 |
Hallo,
Zitat: |
Wieso das so ist mit geschweifter und runder Klammer, weis ich zwar noch nicht aber es funktioniert |
Bei Cell Arrays bekommst du mit runden Klammern die Cell an sich, mit geschweiften Klammern den Inhalt der Cell. Es ist empfehlenswert, immer auch auf die im Workspace angezeigten Datentypen zu achten.
Grüße,
Harald
|
|
|
|
|
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.
|
|