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

variablen in übergeordneter struktur/array sammeln

 

nilsnils

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.06.2013, 23:35     Titel: variablen in übergeordneter struktur/array sammeln
  Antworten mit Zitat      
Code:
Input = importdata('daten.dat');
Zeit = input.data(:,1);
AnzahlMessaufnehmer = (size(Input.data,2) -1) / 3;

for i = 1 : AnzahlMessaufnehmer

    NameAufnehmer(i) = Input.colheaders (2 * i);
    eval([NameAufnehmer{i} '= Input.data(: , 2 * i : 2 * i + 1)']);

end


Hallo,

Ich lade ein.dat-File mit beschrifteten Spalten ein. Die Daten zweier aufeinander folgender Spalten werden mittels eval Variablen zugewiesen, deren Namen aus den Spaltenüberschriften stammen. Diese Variablen würde ich nun gern in einer übergeordneten Struktur sammeln, um diese mithilfe einer Schleife nacheinander einer Funktion zu übergeben. Nur wie?

Danke[/code]


nilsnils

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2013, 07:55     Titel:
  Antworten mit Zitat      
Code:

AnzahlMessaufnehmer = (size(Input.data,2) -1) / 2;
 


...Ein Tippfehler, der aber nichts mit dem Problem zu tun hat. ^^
 
Sirius3
Forum-Guru

Forum-Guru


Beiträge: 441
Anmeldedatum: 12.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2013, 09:10     Titel:
  Antworten mit Zitat      
Hallo nilsnils,

Du solltest eval nicht benutzen. Das Warum steht hier im Forum in jedem Beitrag in dem eval erwähnt wird.
Statt dessen solltest Du die Daten sofort in einem struct sammeln, wie Du es ja hinterher ohnehin machen willst. Dabei hilft, dass auf Structfelder mit Variablen zugegriffen werden kann: »daten.(name)=wert;«

Ungetestet:
Code:
eingabe = importdata('daten.dat');
zeit = eingabe.data(:,1);
namen = eingabe.colheaders(2:2:end);
daten = mat2cell(eingabe.data(:,2:end),[size(eingabe.data,1)],2*ones(1,(size(eingabe.data,2)-1)/2));
daten = cell2struct(daten,namen,2);
Private Nachricht senden Benutzer-Profile anzeigen
 
nilsnils

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.06.2013, 14:56     Titel:
  Antworten mit Zitat      
Vielen Dank,

das funktioniert erstmal sehr gut. Jetzt würde ich gern in einer Schleife über einen Index auf die einzelnen Variablen in "daten" zugreifen und diese an eine Funktion übergeben, deren Output aus dem Namen der Eingangsvariablen und einem festen Zustatz besteht. So ungefähr..

Code:


for i = 1 : size(namen,2)

     ['namen(i)''Info','namen(i)''Verlauf',...]=function(zeit, daten.'namen(i)')

end

 
 
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.