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

Funktion mit Befehl evalin

 

tschucko

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.11.2011, 19:29     Titel: Funktion mit Befehl evalin
  Antworten mit Zitat      
Hallo,

Um eine Datei mithilfe einer Funktion zu laden und Zugriff auf die in dieser gespeicherte Variable zu habe, habe ich den Befehl evalin verwendet.


Code:


function erg = plot_Fcn(dataname)

evalin('base', 'load([,dataname,])')

disp('Dateiname',num2str(var);
erg = abs(var(:,1));

end


 


also dataname ist eine mat-file in current directory und var ist die in dieser Datei gepspeicherte Variable. var enthält mehrere Spalten. In diesem Fall möchte ich die erste Spalte von var haben.

Problem: Fehlermeldung, dass dataname und var nicht bekannt sind.

Wie lautet der Befehl, wenn ich diese Funktion aufrufen möchte, also damit die Datei dataname.mat geladen wird und wie kann ich auf die var zugreifen, um damit rechnen zu können ?

ich danke euch im Voraus.

Gruß
tschucko


soad
Forum-Century

Forum-Century


Beiträge: 150
Anmeldedatum: 10.11.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.11.2011, 19:52     Titel:
  Antworten mit Zitat      
Hi,

ich verstehe nicht ganz, warum du den EVALIN Befehl brauchst? Es sollte doch
Code:
ausreichen, sofern du die Funktion richtig aufrufst. Startest du vielleicht mit RUN im Editor?

VAR ist übrigens auch ein MATLAB Befehl, daher wäre ich vorsichtig mit solchen Bezeichnungen.
Private Nachricht senden Benutzer-Profile anzeigen
 
tschucko

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.11.2011, 20:00     Titel:
  Antworten mit Zitat      
Hallo,

ich habe auch schon mit dem Befehl load versucht, hat leider auch nicht geklappt, weil ich nicht wusste, wie man die Funktion aufrufen soll, damit die Datei dataname geladen wird und wie ich dann auf die var1 (ich habe mich vertippt) zugreifen kann.


Der Befehl load in einem m.file geht ja ganz einfach, weil man einfach den Speicherort angeben muss aber mit Funktion weiss ich nicht, wie das geht.

Gruß
tschucko
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 28.11.2011, 21:38     Titel:
  Antworten mit Zitat      
Hallo tschucko,

Ich verstehe das Problem nicht. Eine Funktion kann man doch in einem M-File speichern.

Variablen per LOAD direkt in den lokalen WorkSpace zu laden ist fehleranfällig, da man nicht kontrollieren kann, ob genutzte Variablen überschrieben werden.
Code:
function erg = plot_Fcn(dataname)
Data = load(dataname);
erg = abs(Data.var1(:,1));
end

Hilft das weiter?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
tschucko

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.11.2011, 06:51     Titel:
  Antworten mit Zitat      
hallo ,

danke für deine Antwort.
was ich schreiben wollte, war dass in einem Script .....
es hat funktioniert, aber wie kann man den Befehl evalin verwenden, um das gleiche Resultat zu erzielen ?


gruß
tschucko
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 29.11.2011, 10:01     Titel:
  Antworten mit Zitat      
Hallo tschucko,

Der Unterschied zwischen einem Script und einer Funktion ist, dass letztere mit einer Zeile "function [Output, ...]=Name(Inputs, ...)" startet und einen eigenen WorkSpace besitzt. Im Script werden dagegen alle Variablen mit der Aufrufenden Funktion gemeinsam genutzt.

Am besten läßt man sämtliche Verrenkungen mit EVALIN sein. Sie sind fehleranfällig, kaum zu debuggen und bremsen Matlab massiv aus. Wieso also "ferngesteuert" Funktionen ausführen und Variablen erzeugen, wenn es auch direkt geht?!

Gruß, Jan
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 - 2026 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.