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

Datei laden und ausführen

 

Gebbi
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 14.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.08.2010, 20:12     Titel: Datei laden und ausführen
  Antworten mit Zitat      
Hallo,

ich habe wieder mal ein Problem, was ich nach stundenlangen suchen und probieren nicht gelöst bekomme.

Ich habe ein m FIle, das wenn man es ausführt eine Struktur anlegt, zb.
Code:
S=Daten.m;

damit wird im Workspace die Struktur S angelegt. An dieser Tatsache kann ich nichts ändern da so benötigt.

Ich mache nun eine Eingabemaske (GUI) und möchte eine laden funktion einbauen. Sprich ich öffne mit
Code:

eine solche Datei.
filename ist jetzt aber ein string.
Ich habe es so versucht:
Code:


Dabei erhalte ich aber diese Fehlermeldung:

??? Undefined variable "tst2" or class "tst2.m".

Die Datei liegt aber im Arbeitsverzeichnis. Ich benötige aber auch das Auswahlfenster, um beliebige solche Files einlesen zu können, kann also nicht einfach auf eine feste Datei zugreifen.

Ich weis gerade nicht weiter, wie ich das machen soll. Ich brauche aber auf diese Art und Weise diese Struktur aus dem m FIle im Workspace oder muss darauf zugreifen. Würde mich über eure Hilfe freuen.

LG Gebbi
Private Nachricht senden Benutzer-Profile anzeigen


Gebbi
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 14.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.08.2010, 20:51     Titel:
  Antworten mit Zitat      
Habe gerade herausgefunen das der eval befehl nicht arbeitet, wenn man eine Dateiendung anhängt(.m oder .mat) ansonsten ja.
Wenn ich mit strrep(...) die mat endung abschneide, funktionierts, aber gibts da auch noch eine elegantere Lösung? Kann mir kaum vorstellen, dass das so gedacht ist...
Über eine andere Lösung würde ich mich freuen.
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: 03.08.2010, 21:27     Titel:
  Antworten mit Zitat      
Hallo,

mit der Funktion
Code:

kannst du dir den endungsfreien Dateinamen direkt holen.

Mit eval funktioniert genau das, was auch von der Kommandozeile aus funktioniert.
Code:
S=Daten.m;

sucht meines Wissens nach dem Feld m einer Struktur Daten, nicht nach einer Datei.

Grüße,
Harald[/code]
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: 03.08.2010, 21:29     Titel:
  Antworten mit Zitat      
Hallo Gebbi,

FEVAL ist besser geeignet um eine Funktion auszuführen:
Code:

FileName = uigetfile('*.m', 'Choose a function:');
[dummy, FileName, FileExt] = fileparts(FileName);
feval(FileName);
 

Mit MAT Files geht das übrigens nicht.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 14.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.08.2010, 22:37     Titel:
  Antworten mit Zitat      
Danke euch, das hilft mir um einiges weiter Smile

Kurze Frage: Was ist der bedeutende unterschied zwischen eval und feval?
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: 04.08.2010, 03:01     Titel:
  Antworten mit Zitat      
Hallo Gebbi,

natürlich kann das "help eval" und "help feval" genauer beantworten, aber grob gesagt ist es am wichtigsten, dass "FEVAL" eine Funktion mit Inputs und Outputs aufruft, während EVAL alles Mögliche ausführt. Man kann also mit FEVAL nicht aus Versehen Variablen oder Funktions-Namen überschreiben.

Es sei denn man versucht es mit:
Code:


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