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

in einem struct nach bestimmten Zeichenkombinationen suchen

 

Jonas5845

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.12.2016, 10:58     Titel: in einem struct nach bestimmten Zeichenkombinationen suchen
  Antworten mit Zitat      
Hallo ich habe folgendes Problem,
ich habe in einem Ordner viele Unterordner in denen jeweils nur eine Datei steckt. Ich lasse mir den Inhalt des Ordners über
Code:

liste=dir('Ordner');
 

ausgeben. anschließend möchte ich jeden einzelnen Ordner öffnen. Vorher möchte ich aber nach einer bestimmten Zahlenkombination suchen. Also jeder Ordner ist mehr oder weniger nach dem selben System benannt und enthält eine dreistellige Zahl. Ich würde gerne über eine for-Schleife jede Zahl durchlaufen lassen und nach dem jeweiligen Ordner suchen lassen. Gibt es irgendetwas was mir ungefähr sowas hier macht:
Code:

for i=1:1:100
%suche den Ordner der i enthält
%öffne den Ordner
%Lies die Datei im Ordner ein und gib ihr den Namen Text_i
end
 

Vielen Dank schonmal, ich hoffe ich habe mich verständlich ausgedrückt Very Happy


Stakkay
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 04.01.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.01.2017, 14:52     Titel: Dateiname ändern
  Antworten mit Zitat      
Hallo Jonas,

hier ist ein kleiner Beispielcode:

Code:
list = dir;

for i = 0:999
   
    number = num2str(i);
    if (i<100)
        number = strcat('0',number);
    end
    if (i<10)
        number = strcat('0',number);
    end
   
    for j = 1:length(list)
       
        if strfind(list(j).name,number)
           
            cd(list(j).name)
           
            filename = dir;
            filename = filename(3).name;
           
            movefile(filename,strcat('Text_',number,'.txt'))
           
            cd('../')
        end
    end
end


Hoffentlich kommst du damit weiter falls du das Problem nicht schon selber gelöst hast:)
Private Nachricht senden Benutzer-Profile anzeigen
 
Jonas5845

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.01.2017, 13:50     Titel: Danke
  Antworten mit Zitat      
Vielen Danke Stakkay,
ich bin zwar wirklich schon auf eine Lösung gekommen, da die aber fast die selbe ist habe ich jetzt wenigstens die Bestätigung, dass sie wohl sogar ganz gut war. Danke also für deine Mühe Very Happy Very Happy
Liebe Grüße
Jonas
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 16.01.2017, 16:02     Titel: Re: Dateiname ändern
  Antworten mit Zitat      
Hallo Stakkay,

Ein paar Kommentare zum Code:
Code:
number = num2str(i);
    if (i<100)
        number = strcat('0',number);
    end

% Einfacher:
number = sprintf('%03d', i);

Vermeide cd , denn ein Callback eines Timers oder eines GUIs könnte den aktuellen Ordner ebenfalls verändern. Dann ist die Konfusion perfekt.
Nutzer absolute Pfadnamen stattdessen:
Code:
filelist = dir(fullfile(folder, ist(j).name));
filename = filelist(3).name;

Ich habe hier das erste "filename" durch "filelist" ersetzt, denn Matlab kann einen Code schneller bearbeiten, wenn Variablen nicht ihren Typ ändern, also hier von struct array zu char vector.

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