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

Werte auslesen

 

obie
Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 18.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.03.2012, 17:26     Titel: Werte auslesen
  Antworten mit Zitat      
Hallo zusammen,

folgendes Problem: mit dem untenstehenden code erstelle ich ein struct in dem mehrer arrays mit messdaten gespeichert sind

Code:

  eval(['[simulationsdaten]  = f_savefile(auslenkungen_' simmodeex '.signals.values(:,:),aktorkraft_' simmodeex '.signals.values(:,:)'...
        ',lagerkraft_' simmodeex '.signals.values(:,:),unwuchtkraft_' simmodeex '.signals.values(:,:),auslenkungen_' simmodeex '.time(:,1));']);
       

   
        simdata.(['simulation_' simmodeex '_' num2str(n)]) = simulationsdaten;
        clear('simulationsdaten')

 


in dem struct befinden sich also mehrer cell-arrays in denen Messwerte gespeichert sind. f_savefile schreibt nur in die erste Zeile des cell-arrays Überschriften damit ich weiß welche Messwerte wo sind.

Code:

function simulationsdaten = f_savefile(auslenkungen,aktorkraft,lagerkraft,unwuchtkraft,zeitvektor)

simulationsdaten{1,1} = 'title1';
simulationsdaten{1,2} = 'title2';
simulationsdaten{1,3} = 'title3';
simulationsdaten{1,4} = 'title4';
simulationsdaten{1,5} = 'title5';


simulationsdaten{2,1} = var1;
simulationsdaten{2,2} = var2;
simulationsdaten{2,3} = var3;
simulationsdaten{2,4} = var4;
simulationsdaten{2,5} = var5;

end
 


Code:

function  [] = f_simplots(dof,simmode,freq,output)

eval([' tempvar = simdata.simulation_' simmode '_' num2str(freq)]);

eval(['y = tempvar{2,' num2str(output) '}(:,' num2str(dof) ')' ]);
eval(['x = tempvar{2,' num2str(output) '}(:,' num2str(dof) ')' ]);

plot(x,y)

end
 


Mit der function möchte ich dann bei bestimmten Eingabeparametern der Funktion bestimmte Messwerte auslesen und plotten. Das Problem ist jetzt das er mir sagt, dass die Variable nicht existiert

Code:

??? Undefined variable "simdata" or class "simdata.simulation_nlin_10".

Error in ==> f_simplots at 7
eval([' tempvar = simdata.simulation_' simmode '_' num2str(freq)]);
 


Warum erkennt er also die cell arrays nicht? oder hab ich da einen grundsätzlichen Denkfehler drin?

Danke schonmal
Gruß obie
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 29.03.2012, 18:33     Titel:
  Antworten mit Zitat      
warum benutzt du eval?
warum wird in deiner funktion f_savefile nicht einer deiner eingangsparameter verwendet? ich hab keine ahung was n oder simoodex ist.
sry aber so kann ich deinen code nicht debuggen. vieleicht finded sich ja wer der mehr ahung hat und hellseher künste Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
obie
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 18.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.03.2012, 08:59     Titel:
  Antworten mit Zitat      
hätte vllt noch dazu sagen sollen das dieser code innerhalb einer schleife steht, n steht für verschiedene drehzahlen und simmodeex steht für verschiedene simulationssetups, sry dafür

grundsätzlich ist das glaube ich aber auch eher unrelevant denn die variable die in der Fehlermeldung nicht erkannt wird existiert ja, also ich kann sie über das commandwindow aufrufen, nur innerhalb der function f_simplot wird sie nicht erkannt
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 30.03.2012, 09:04     Titel:
  Antworten mit Zitat      
wenn du sie nicht übergiebts ist sie auch nicht bekannt. in der funktion sind nur die variablen dof,simmode,freq,output bekannt. simmdata wird nicht übergeben und ist somit auch nicht bekannt.
Private Nachricht senden Benutzer-Profile anzeigen
 
obie
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 18.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.03.2012, 09:07     Titel:
  Antworten mit Zitat      
da hast du allerdings recht, ich habs auch gerade festgestellt Cool Cool Cool

danke für deine mühen

gruß obie
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.