|
|
Bestimmte Spalten eines Cell-Arrays auslesen |
|
punkNgrind |
Forum-Century
|
|
Beiträge: 136
|
|
|
|
Anmeldedatum: 10.03.11
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 06.07.2016, 15:12
Titel: Bestimmte Spalten eines Cell-Arrays auslesen
|
|
Ich möchte eine bestimmte Spalte aus einem verschachtelten Cell-Array auslesen.
Das Cell-Array ist in der Form: {1xVariabel cell}
die Anzahl des Cell-Arrays in der unteren Ebene ist variabel, aber immer in der Form {1x3 cell}
Jetzt möchte ich eine bestimmte Spalte aller (Unter-)Cell-Arrays auslesen.
Also, in diesem Falle z.B. Spalte 2 mit den Namen.
Dies geht:
Dies nicht:
Jemand eine Idee wie ich das (ohne for-Schleife) mache?
Danke schonmal im vorraus.
|
|
|
|
|
gs |
Forum-Century
|
|
Beiträge: 172
|
|
|
|
Anmeldedatum: 17.03.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 07.07.2016, 06:12
Titel:
|
|
Hi,
funktioniert es hiermit?
Grüße gs
|
|
|
punkNgrind |
Themenstarter
Forum-Century
|
|
Beiträge: 136
|
|
|
|
Anmeldedatum: 10.03.11
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 07.07.2016, 07:36
Titel:
|
|
Hallo gs,
leider nicht, das ergiebt:
und x{:,2} ergibt den Inhalt des zweiten (Unter-)Cell-Arrays:
Zuletzt bearbeitet von punkNgrind am 07.07.2016, 07:53, insgesamt einmal bearbeitet
|
|
|
punkNgrind |
Themenstarter
Forum-Century
|
|
Beiträge: 136
|
|
|
|
Anmeldedatum: 10.03.11
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 07.07.2016, 07:46
Titel:
|
|
Weitere Varianten die ich probiert habe, bringen mich auch nicht weiter:
usw.
|
|
|
ro_mat |
Forum-Century
|
|
Beiträge: 158
|
|
|
|
Anmeldedatum: 20.10.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 07.07.2016, 08:06
Titel:
|
|
Hallo,
welcher Wert aus deinem Test-Cell-Array soll denn herauskommen als Beispiel?
|
|
|
ro_mat |
Forum-Century
|
|
Beiträge: 158
|
|
|
|
Anmeldedatum: 20.10.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 07.07.2016, 08:07
Titel:
|
|
Ahh jetzt verstehe ich,
also in diesem Beispiel alle 2.Spalten deiner unter-Arrays oder?
|
|
|
ro_mat |
Forum-Century
|
|
Beiträge: 158
|
|
|
|
Anmeldedatum: 20.10.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 07.07.2016, 08:20
Titel:
|
|
Hallo,
so sollte es funktionieren;
Lg rob
|
|
|
punkNgrind |
Themenstarter
Forum-Century
|
|
Beiträge: 136
|
|
|
|
Anmeldedatum: 10.03.11
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 07.07.2016, 11:31
Titel:
|
|
Hallo ro_mat,
Danke schonmal für deine Antwort.
ro_mat hat Folgendes geschrieben: |
Ahh jetzt verstehe ich,
also in diesem Beispiel alle 2.Spalten deiner unter-Arrays oder? |
Ja genau so ist das gemeint, wobei die Anzahl der Unter-Cell-Array variabel sein kann.
Ich habe das jetzt mal spontan so ausprobiert:
Muss mich aber erstmal in den Aufruf cellfun einlesen, weiß garnicht was der macht.
|
|
|
punkNgrind |
Themenstarter
Forum-Century
|
|
Beiträge: 136
|
|
|
|
Anmeldedatum: 10.03.11
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 07.07.2016, 11:36
Titel:
|
|
Ah genial, so funktioniert es:
Vielen Dank, ro_mat!
|
|
|
punkNgrind |
Themenstarter
Forum-Century
|
|
Beiträge: 136
|
|
|
|
Anmeldedatum: 10.03.11
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 08.07.2016, 09:33
Titel:
|
|
Da ich den Aufruf noch nicht wirklich verstehe, wie muss ich den jetzt "lesen"?
C1 ist der Übergabeparameter des komplette Cell-Arrays.
func ist hier @(x)(x(2))
1. Bedeutet das @(x) -> führe eine Funktion auf alle (Unter-)Cell-Arrays von x aus?
2. Und, ist das (x(2)) die eigentliche Funktion die ausgeführt werden soll?
Also, kann ich das so lesen:
Nehme C1 = x und übergebe sie an @(x).
@(x) führe in allen vorhanden Cell-Array von x die Funktion x(2) aus.
Die Funktion gibt den zweiten Wert des Übergebenen (Unter-)Cell-Arrays aus.
Habe ich das richtig verstanden?
|
|
|
punkNgrind |
Themenstarter
Forum-Century
|
|
Beiträge: 136
|
|
|
|
Anmeldedatum: 10.03.11
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 12.07.2016, 11:35
Titel:
|
|
Kann mir keine/r sagen, ob ich mit meiner Annahme vom vorherigen Post richtig liege?
|
|
|
ro_mat |
Forum-Century
|
|
Beiträge: 158
|
|
|
|
Anmeldedatum: 20.10.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.07.2016, 12:03
Titel:
|
|
Hallo,
diese Art die hier verwendet werden sind sogenannte Anonymous Functions! Also Funktionen die nirgends gespeichert sind, die aber mit einer Variable verbunden werden kann!
Also der @-Operator generiert das function_handle und das (x) dahinter sind die Input-Argumente! Das heißt deine Funktion hat auch nur ein einfaches Input (In deinem Fall das Haupt-Cell-Array)! Das x(2) dahinter beschreibt deinen Funktionsausgang - in deinem Fall eben angewendet auf die 2.Spalte aller Sub-Arrays! Das Argument nach dem Beistrich ist sogleich deine Variable auf die die Funktion angewendet wird!
Lg
|
|
|
ro_mat |
Forum-Century
|
|
Beiträge: 158
|
|
|
|
Anmeldedatum: 20.10.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.07.2016, 12:06
Titel:
|
|
Also,
du kannst zum Verständnis die Funktion auch extra abspeichern:
Und fertig is de gschicht
|
|
|
punkNgrind |
Themenstarter
Forum-Century
|
|
Beiträge: 136
|
|
|
|
Anmeldedatum: 10.03.11
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 12.07.2016, 12:24
Titel:
|
|
:daumen-hoch:
Sehr vielen Dank für die kurze und präzise Antwort.
Dies mit den 'Anonymous Functions' war mit bisher noch kein Begriff.
Schönen Gruß
Lars
|
|
|
|
|
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 - 2024
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.
|
|