Verfasst am: 06.04.2016, 16:28
Titel: Dateiname aus struct auslesen und einlesen
Hallo zusammen,
ich möchte alle .m-files aus einem Verzeichnis einlesen.
Über uigetdir lasse ich alle Datennamen mit Pfad im ausgewählten Verzeichnis in einem
struct abspeichern.
Jetzt kommt es zu meinem Problem:
Wenn ich jetzt Versuche mit der Structposition, in der der komplette Dateiname + Pfad hinterlegt ist, z.B. filepath{1}
den run-Befehl auszuführen, um die Datei einzulesen kommt der Fehler, dass es die Datei nicht gibt.
Der Grund warum der Fehler kommt, liegt glaub daran, dass der run-Befehl nicht den Inhalt des structs einliest.
Verzeichnis und Namen der Dateien können pro Einlesevorgang variieren.
Gibt es eine alternative um das .m-file einzulesen ohne den Vorteil, den das .m-file bietet, zu verlieren?
bitte poste doch deinen Code anstatt ihn zu beschreiben.
Zitat:
ich möchte alle .m-files aus einem Verzeichnis einlesen.
Was genau möchtest du?
- die Dateien ausführen
- die Dateien (als Text) importieren?
- was ganz anderes?
uigetdir hilft jedenfalls nur bei der Auswahl des Verzeichnisses, nicht aber bei der Bestimmung des Inhalts. Dazu musst du dir verwenden.
Grüße,
Harald
Doodle
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 08.04.2016, 08:15
Titel:
Soweit bin ich gekommen:
Code:
% Alle Daten einlesen über Fensterauswahl
pathname =cell(1,1); % predefine struct for path
Mfiles = cell(1,1); % predefine struct for filenames
pathname = uigetdir('', 'choose the register'); % select the register, where are the files for downlading if pathname == 0% if you put Cancel, the programm will close return end
Mdir = dir(pathname); % read all dentries
nbentries = size(Mdir, 1); % define the number of dentries
for entry_i = 1:nbentries % loop for all dentries if Mdir(entry_i).isdir == false% Is not this a dentry? % then is this a filename
filename = Mdir(entry_i).name; % extract the actually filename if filename(1) ~= '.' % eliminate '.' and '..' [p, n, ext] = fileparts(filename); % define extension of filename ifstrcmpi(ext, '.m')% compare fileformat
Mfiles{entry_i} = filename; % if okay, the file will save end end end end
Mfiles = Mfiles(~cellfun('isempty', Mfiles')); % delete all empty cells
nbfiles = length(Mfiles); % define the number of filenames
for lpath = 1:nbfiles % loop for all filenames
filepath{lpath} = fullfile(pathname, Mfiles{lpath}); % joint pathname with filename end
würde jetzt gerne die .m-files über die Pfadnamen so einlesen können, wie wenn man das .mfile direkt ins Command Window eingibt.
edit winkow: bitte code umgebung benutzen
bitte auf die Frage eingehen.
Deiner Beschreibung nach vermute ich, dass du die Dateien ausführen, nicht einlesen willst. Das ginge mit
run
.
Wenn du die .m-Dateien in einem Verzeichnis haben möchtest, warum holst du dir nicht gleich mit dem dir-Befehl nur diese anstatt alles zu holen und dann zu filtern?
Grüße,
Harald
doodle
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 11.04.2016, 11:33
Titel:
Hallo,
sorry für die Verwirrung.
habe nun aber meinen Denkfehler gefunden hatte das .m ja noch stehen beim Ausführen vom run-Befehl.
Vielen Dank nochmal für die Hilfe
Grüße
Dominic
Einstellungen und Berechtigungen
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
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.