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

Dateiname aus struct auslesen und einlesen

 

Doodle

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.04.2016, 16:28     Titel: Dateiname aus struct auslesen und einlesen
  Antworten mit Zitat      
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?

Vielen Dank

Mit freundlichen Grüßen

Doodle


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 06.04.2016, 19:41     Titel:
  Antworten mit Zitat      
Hallo,

bitte poste doch mal deinen bisherigen Code inkl. Fehlermeldung. Das macht die Hilfe deutlich einfacher und erspart i.d.R. etliche Verständnisfragen.

Gruß DSP
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.04.2016, 19:42     Titel:
  Antworten mit Zitat      
Hallo,

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
Private Nachricht senden Benutzer-Profile anzeigen
 
Doodle

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2016, 08:15     Titel:
  Antworten mit Zitat      
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
      if strcmpi(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
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 08.04.2016, 19:06     Titel:
  Antworten mit Zitat      
Hallo,

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
Private Nachricht senden Benutzer-Profile anzeigen
 
doodle

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.04.2016, 11:33     Titel:
  Antworten mit Zitat      
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
 
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 - 2024 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.