WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

aus struct auf bestimmtes feld alle inhalte in variable

 

huhu0815
Forum-Century

Forum-Century


Beiträge: 141
Anmeldedatum: 20.02.14
Wohnort: Dresden
Version: R2013b, R2014b, R2016b, R2018a
     Beitrag Verfasst am: 12.05.2016, 16:35     Titel: aus struct auf bestimmtes feld alle inhalte in variable
  Antworten mit Zitat      
Hallo zusammen,

ich stehe mal wieder auf dem Schlauch und brauche daher Rat.

ich hab ein struct mit einem feld, welches mehrere Inhalte hat. Nun möchte ich gerne alle felder auf einmal in ein cell packen.


Code:

b = struct.empty;
b(1).class = 'erste Klasse';
b(1).name = 'Alfred';
b(1).alter = 7;

b(2).class = 'zweite Klasse';
b(2).name = 'Dieter';
b(2).alter = 8;

b(3).class = 'dritte Klasse';
b(3).name = 'Johanna';
b(3).alter = 9;
 


Als Ausgang möchte ich gerne ein Cell-Array haben das mir ALLE Inhalte von b des Feldes Name enthält. Und das möglichst mit einem einfachen befehl.
Also sowas
Code:
Namen = {'Alfred'; 'Dieter';'Johanna'}



Ich danke euch.
VG
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.05.2016, 16:40     Titel:
  Antworten mit Zitat      
Hallo,

Code:
Namen = {b.name}


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
huhu0815
Themenstarter

Forum-Century

Forum-Century


Beiträge: 141
Anmeldedatum: 20.02.14
Wohnort: Dresden
Version: R2013b, R2014b, R2016b, R2018a
     Beitrag Verfasst am: 12.05.2016, 16:46     Titel:
  Antworten mit Zitat      
Hallo Harald

danke für die schnelle Antwort. Ich habe es bisher ohne die Klammern probiert oder mit

Code:
Namen = b(:).name;


allerdings erhält man dort nur den ersten Eintrag. Was passiert da im Hintergrund wenn man die geschweiften Klammern drum schreibt? Is das eine Art "TypeCast" für alle Einträge? Oder gibt es dafür ein Stichwort, wie bei der logischen Indizierung?

VG
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.05.2016, 16:53     Titel:
  Antworten mit Zitat      
Hallo,

struct.field
erzeugt eine Liste von Ergebnissen.

[struct.field] bedeutet [struct(1).field, struct(2).field, ... , struct(end).field]
Das bietet sich für Double-Werte oder Spaltenvektoren gleicher Länge an.

{struct.field} bedeutet {struct(1).field, struct(2).field, ... , struct(end).field}
Das bietet sich für numerische Arrays unterschiedlicher Größe oder Strings an.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
huhu0815
Themenstarter

Forum-Century

Forum-Century


Beiträge: 141
Anmeldedatum: 20.02.14
Wohnort: Dresden
Version: R2013b, R2014b, R2016b, R2018a
     Beitrag Verfasst am: 12.05.2016, 17:00     Titel:
  Antworten mit Zitat      
Vielen Dank für die Erklärung.

Ich habe wieder was dazu gelernt und das ich viele voherigen Beispiele mit Schleifen mir hätte ersparen können.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.