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

struct dynamisch initialisieren

 

geraldflowmountain
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 04.05.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.05.2015, 15:15     Titel: struct dynamisch initialisieren
  Antworten mit Zitat      
Hallo,

ich wüsste gerne, wie man ein struct mit vielen Feldern dynamisch initialisiert.
Bisher kann ich es leider nur so machen:

1) Auslesen der Feldnamen aus dem bekannten struct "temporary" column_names=fieldnames(temporary);
Und vorbereiten eines leeren cell
c=cell(size(30,1),1);

2) Nur weil ich die Anzahl der fieldnames kann ich das so machen, aber ich würde gerne flexibel je nach Größe von column_names das struct initialisieren:

results=struct(cell2mat(column_names(1,1)),c,
cell2mat(column_names(2,1)),c,
...
cell2mat(column_names(38,1)), c);


Danke vorab für die Antworten
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 06.05.2015, 15:50     Titel: Re: struct dynamisch initialisieren
  Antworten mit Zitat      
Hallo geraldflowmountain,

Ich habe nicht genau verstanden, was das Problem ist und was Du bisher machst. Was genau möchtest Du flexibel machen?

Was soll dies bewirken:
Code:

Meninst Du:
Code:

?

Statt des Aufrufs des Befehls STRUCT wäre dies doch einfacher:
Code:
column_names=fieldnames(temporary);
c = cell(numel(column_names), 1);
S = cell2struct(c, column_names, 1);

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
geraldflowmountain
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 04.05.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.05.2015, 17:05     Titel:
  Antworten mit Zitat      
Hey,

entschuldige bitte,

ich hatte beim Vereinfachen zu wenig gelöscht. Ich meinte:

c=cell(30,1);

das Ziel soll sein, ein 30x1 struct with 38 fields zu haben.
Dabei ist kann für das Beispiel die Zahl 30 beliebig geänder werden. Die 38 hingegen ist im Beispiel die Anzahl der fieldnames --> numel(column_names) ==38

Danke nochmals
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.