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

Möchte das Programm mehrmals ausgeführt wird...

 

alejandro
Forum-Anfänger

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 03.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.11.2013, 09:58     Titel: Möchte das Programm mehrmals ausgeführt wird...
  Antworten mit Zitat      
Hallo,

Brauche Hilfe! Ich möchte das folgendes Programm alle Dateien aus dem jeweils angegebenem Ordner einliest, und die jeweiligen Daten ausgibt.

Wenn also 20 Datein in dem Ordner sind und diese 001-020 heißen sollen diese nacheinander als 001_out-020_out ausgegeben werden. Es handelt sich um xls datein.

Vielen Dank für die Hilfe


Code:
% Das ist mein Programm.
%Clear workspace

close all;
clear all;

%1. Einlesen der Daten aus Ordner
%path(path,'\\labor3\C_Labor3\Dokumente und Einstellungen\XXXX\Eigene Dateien\Studie_V\Matlab\')

disp ('Verzeichnis wählen')
ordner = uigetdir ('', 'Verzeichnis wählen');
listealledateien = dir ('*.txt'); %Laden des gesamten ordnerns (nur .txt)

listealledateien = struct2cell (listealledateien);

%2. Abfragen des Dateinamen
fileID = -1;
errmsg = '';
while fileID < 0
   disp(errmsg);
   filename = input('Open file: ', 's');
   [fileID,errmsg] = fopen(filename);
end

%Reaktionzeit Bereich min/max

RT_min=50;
RT_max=5000;

%3. Einlesen der Daten
fileID = fopen(filename);
[num,txt,raw] = xlsread(filename); %Lädt xls mit num, txt und raw(num+txt) content
beschriftung = txt; %Lädt die beschriftung aus der variable txt

groesse=size(num)
zeilenzahl=groesse(1);
onsetzeiten=zeros(50,1);
onsetlaufindex=1;
for i=1:zeilenzahl
    aktuelle_zeile=num(i,:);
    bildon=aktuelle_zeile(4);
    onsetzeit=aktuelle_zeile(1);
    if bildon==1
        onsetzeiten(onsetlaufindex)=onsetzeit;
        onsetlaufindex=onsetlaufindex+1;
    end
end
onsetzeiten

tastenzeiten=zeros(0,1);
for i=1:zeilenzahl
    aktuelle_zeile=num(i,:);
    taste=aktuelle_zeile(6);
    tastenzeit=aktuelle_zeile(1);
    tastenart=aktuelle_zeile(9);
   
    if taste==1
        if tastenart==75
        tastenzeiten=vertcat(tastenzeiten,tastenzeit);
        end
        if tastenart==77
        tastenzeiten=vertcat(tastenzeiten,tastenzeit);
        end
    end
end
tastenzeiten

tastendruecke=size(tastenzeiten)

RTs=zeros(50,1);
RTs=RTs*NaN;

for i=1:50
    onsetzeit=onsetzeiten(i);
    minantwort=onsetzeit+RT_min;
    maxantwort=onsetzeit+RT_max;
    erste=1;
    for j=1:tastendruecke(1)
        if tastenzeiten(j)>minantwort
            if tastenzeiten(j)<maxantwort
                if erste==1
                RTs(i)=tastenzeiten(j)-onsetzeit;
                erste=10
                end
            end
        end
    end
end
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 04.11.2013, 10:08     Titel:
  Antworten mit Zitat      
über dir bekommst du die datei namen. die kannst du mittels for-schleife abarbeiten. das wurde hier schon des öfteren im forum besprochen. einfach mal suchen und dann genauere fragen stellen. dein code siht so aus als würde er sehr viel enthalten das mit dem problem an sich nichts zu tun hat. bitte minimalbeispiele geben Smile
kleine anmerkungen noch:

Code:
ist schlecht und sollte vermieden werden. warum steht hier im forum schon einige male.(erschwert das debuggen)
Zitat:
sollen diese nacheinander als 001_out-020_out ausgegeben

falls du damit meinst das die variablen namen dynamisch erstellt werden sollen ist das ebenfalls schlecht. einen index im namen zu verstecken ist meistens mist. den aufwand den man treiben muss um das zu realisieren würd nochmal bei weitem von dem aufwand übertroffen den man aufwenden muss um danach mit den daten zu arbeiten. ein index sollte auch als index verwendet werden. cells bieten sich da zb an. structs würden zur not auch noch gehen wenns unbedingt im namen stehen soll.
grüße winkow
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
alejandro
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 03.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.11.2013, 10:39     Titel:
  Antworten mit Zitat      
Ok also mit "dir"!

Wenn ich das so mache dann zählt er mir alle Files auf die im Ordner sind, aber wie mache ich es jetzt das er jede davon umbennent und in 021out.xls oder sonstigem ausgibt.

Habe bereits im Forum gelesen aber bin daraus nicht schlau geworden da ich sicher immer 1-2 Fehler mache die ich net rauskriege.

Danke!

Code:
% Das ist mein Programm.
path(path,'\\labor3\C_Labor3\Dokumente und Einstellungen\XXX\Eigene Dateien\Studie_V\Matlab\Wartezeit test')

f = dir('*.xls');

for i = 1:length(f)

    filename = f(i,1).name;
    disp(['Read File ' filename])

end

 


Ausgabe:

Read File 021.xls
Read File 022.xls
Read File 023.xls
Read File 024.xls
Read File 025.xls
Read File 026.xls
Read File 027.xls
Read File 029.xls
Read File 030.xls
Private Nachricht senden Benutzer-Profile anzeigen
 
Kascho
Forum-Century

Forum-Century


Beiträge: 195
Anmeldedatum: 24.03.10
Wohnort: Jena
Version: R2008b ... :(
     Beitrag Verfasst am: 04.11.2013, 16:31     Titel:
  Antworten mit Zitat      
Hallo,

was meinst du mit "ausgeben" bzw. "umbennen"? Sollen die Files im Ordner umbenannt werden?

Was für Fehler hast du denn gemacht? Wink

Mat geraten:

Code:


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