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

Hilfe bei Schleifenerstellung

 

o0o_w3e
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 12.06.14
Wohnort: München
Version: MATLAB 7.11.1 R2010bSP1
     Beitrag Verfasst am: 16.06.2014, 10:13     Titel: Hilfe bei Schleifenerstellung
  Antworten mit Zitat      
Hallo zusammen,

ich bin noch ein Anfänger in MATLAB, benötige aber dringend eine Schleife, die:

-> eine eigene Funktion mit Input einer *.dat Datei startet - Aufruf: mess=icm_mess('filename')
-> den daraus resultierenden MATLAB Workspace in dem selben Ordner der *.dat Dateien unter dem gleichen Namen wie die *.dat Datei als *.mat file abspeichert
-> mit der nächsten *.dat Datei in dem Ordner weitermacht

Alle bisherigen Ergenisse sind mehr oder weniger Zusammenstückelungen aus vorhanden Skripten, die bis jetzt teilweise funktionieren, aber sicher nicht gut programmiert sind. Deswegen suche ich hier Tipps für eine Neuerstellung.
Das Speichern der Datei hatt leider noch nie so 'dynamisch' wie gewünscht funktioniert. Hier wäre ich für kreative Vorschläge besonders dankbar!

Danke schonmal an jeden, der sich Gedanken zu meinem Problem macht!
Private Nachricht senden Benutzer-Profile anzeigen


o0o_w3e
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 12.06.14
Wohnort: München
Version: MATLAB 7.11.1 R2010bSP1
     Beitrag Verfasst am: 16.06.2014, 13:09     Titel:
  Antworten mit Zitat      
Code:
result = [];

    a=1;
    % Einlesen der Datenname
    while(a)    
        [filename{a}, pathname{a}, filterindex] = uigetfile( ...
        {  '*.dat','All Files (*.*)'}, ...
        'Wähle auszuwertende Tracks pro Fahrzeug', ...
        'MultiSelect', 'on');
        if filterindex == 0; a=-1; end % no additional file is selected
        a=a+1;
    end
    if  size(filename,2)==1; if filename{1}==0; return; end; end % Falls keine Daten ausgewählt werden
   
    % letztes Feld von Filename löschen, falls Daten ausgewählt wurden und umspeichern
    for i=1:size(filename,2)-1
        filenamenew{i}=filename{i};    
        pathnamenew{i}=pathname{i};
    end
    filename=filenamenew;
    pathname=pathnamenew;
    clear filenamenew pathnamenew a filterindex;
   
   
    % Auswertung der einzelnen Daten
    % Schleife über alle ausgewählten Datensätze (i_v=i vehicle)
    for i_v = 1:size(filename,2)
        y = 1;
        if iscell(filename{i_v})
            % Schleife über alle in einem Schritt ausgewählten Dateien (i_t=i track)
            for  i_t= 1:size(filename{i_v},2)
                    AktFileName = fullfile(pathname{i_v},filename{i_v}{i_t});
                   
                    mess=icm_mess(AktFileName,0,1,-1,0,0);  % Einlesen in icm_mes
                   
                   % Variablen erstellen - umbennen - befüllen

                        tmp = mapping_table('ZaehlerSek')
                        time.xUnits = tmp.standard.unit
                        time.x = mess.t

                        %....

                        clear tmp
                        clear mess

                        % Workspace abspeichern

                        save(fullfile(pathname{i_v},filename{i_v}{i_t}))
                        % save(fullfile([AktFileName],time));
                        % save([AktFileName],time)
                       
                    clear Data AktFileName;
            end
        else        
                    % ....                  
                    clear Data AktFileName;
        end
    end
 


wäre aktuell der beste Versuch, der zum einen sicher nicht die optimale Herangehensweise darstellt und zum anderen nicht funktioniert (Speicherung der Variablen)
Private Nachricht senden Benutzer-Profile anzeigen
 
Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 16.06.2014, 13:32     Titel:
  Antworten mit Zitat      
"funkioniert nicht" ist immer eine schlechte Fehlermeldung. Kommt er überhaupt da an?

Anstelle von
Code:
 for i=1:size(filename,2)-1
         filenamenew{i}=filename{i};    
         pathnamenew{i}=pathname{i};
     end
     filename=filenamenew;
     pathname=pathnamenew;


kannst du bspw. auch gleich
Code:
filename=filename(1:size(filename,2)-1)
pathname=pathname(1:size(filename,2)-1)
 


schreiben
_________________

Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
Private Nachricht senden Benutzer-Profile anzeigen
 
o0o_w3e
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 12.06.14
Wohnort: München
Version: MATLAB 7.11.1 R2010bSP1
     Beitrag Verfasst am: 16.06.2014, 14:22     Titel:
  Antworten mit Zitat      
Danke für den Tipp, versuche es gleich mal umsetzen.

Bzgl 'funktioniert nicht' - in dieser Konfiguration läuft die Schleife soweit durch (keine Fehlermeldung) und er liest auch immer die unterschiedlichen Daten ein. ABER ob und falls ja, wo er die Daten mit diesem "save"Befehl ablegt ist die Frage - in den gängigen Verzeichnissen habe ich keine neuen Dateien gefunden. Deswegen vermute ich, dass hier bei der Speicherung etwas nicht funktioniert.

Und die Variante mit dem multi-select ist auch nur eine Behelfslösung gewesen - am liebsten wäre mir er würde automatisch alle *dat Dateien des Ordners auswerten.
Private Nachricht senden Benutzer-Profile anzeigen
 
o0o_w3e
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 12.06.14
Wohnort: München
Version: MATLAB 7.11.1 R2010bSP1
     Beitrag Verfasst am: 17.06.2014, 13:47     Titel:
  Antworten mit Zitat      
neue Idee zum Speicher-Problem: tempfile erstellen - umbenennen und verschieben mit

Code:
                       save('tempfile','time','accp')
                       
                        FRSource = 'C:\Entwicklungsdaten\Testumgebung\Skripte\tempfile.mat'
                        FRDest = AktFileName
                       
                        FileRename(FRSource,FRDest)


FileRename habe ich unter
http://www.mathworks.com/matlabcent.....exchange/29569-filerename
gefunden - ist aber so ähnlich wie movefile

Code gibt keinen Fehler aus - speichert die Datei aber vermutlich wieder unter *.dat ab.
Wie mache ich jetzt MATLAB klar, dass er die Endungen tauscht?
Oder bin ich hier mit FileRename in einer Sackgasse???

Danke für eure Hilfe!
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.