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

multiselect von ordnern

 

noob
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 70
Anmeldedatum: 15.01.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.02.2008, 15:31     Titel:
  Antworten mit Zitat      
so, beim durchlaufen sind wir noch auf eine sache gestoßen die einen konflikt verursacht.
das problem tritt bei der namensgebung auf.. für die benennung des files hatten wir folgende zeile:

Code:
test_comm1 = [test_comm1 i{1} (1:2)];


hier werden die ersten beiden zeichen jedes wortes des kommentares für den namen verwendet. Da bei manchen Kommentaren, zahlen vorkommen, also nur ein zeichen, und wir jetzt doch lieber den gesammten text als filename wollen haben wir das (1:2) gelöscht.

Code:
test_comm1 = [test_comm1 i{1}];


jetzt passt die namensgebung, doch leider werden auch satzzeichen in den namen mitgenommen was wiederum zu konflikten bei der weiterverarbeitungen führt. also sobald ein beistrich rufzeichen oder punkt vorkommt bekommen wir eine fehlermeldung.

die frage ist jetzt: wie können wir sagen, dass alle sonderzeichen bei der namensgebung nicht berücksichtigt bzw beim weiterverarbeiten ignoriert werden?
um den backslash zu eliminieren hatten wir die zeile:
Code:
 test_comm(ismember(test_comm,'/'))=[];

auf andere zeichen können wir das aber leider nicht anwenden..

das ist der code um die txt dateien in m-files umzuwandeln und sie zu benennen.. der code weiter oben im thread soll als zweites ausgeführt werden um die fft zu machen
Code:
[filename pathname] = uigetfile('*.txt','multiselect','on');

    for f = 1 : length(filename)

        fid = fopen([pathname filename{f}])
        mkdir([pathname filename{f}(1:end-4)]);
        %
        % Main-Header überspringen (14 Zeilen)
        for i=1:14;
            fgetl(fid);
        end %for 2
        %
            try
            n = 0;
            while 1
                %
                n = n+1
               % Type auslesen, der den filenamen bildet
                test_type = sscanf(fgetl(fid),'Test Type: %s');
                fgetl(fid);fgetl(fid);fgetl(fid);fgetl(fid);
                cond_num = sscanf(fgetl(fid),'Condition Number: %s');
                trial_num = sscanf(fgetl(fid),'Trial Number: %s');
                fgetl(fid);fgetl(fid);fgetl(fid);fgetl(fid);
                %
                tmp = fgetl(fid);
                test_comm = strread(tmp,'%s');
                %
                test_comm = test_comm(3:end);
                % '/' backslash eliminieren
                test_comm(ismember(test_comm,'/'))=[];
                %
                % nur die erstn 2 Chars von jedem Keyword extrahieren
                test_comm1 = [];
                    for i=test_comm'
                        test_comm1 = [test_comm1 i{1}];
                    end% for
                        %Filenamen bilden
                        if (test_comm1>0)
                            fname = sprintf('%s_%d_%s_%s_%s.m', ...
                            test_type,n,cond_num,trial_num,test_comm1);
                        else
                            fname = sprintf('%s_%d_%s_%s.m', ...
                            test_type,n,cond_num,trial_num);
                        end%file anlegen

                fid1 = fopen([[pathname filename{f}(1:end-4) filesep], fname],'wt');
                % startet bei Zeile: Test Comment
                %
                %überspringt die nächsten 2 Zeilen (" " und "Units...")
                        for i=1:3 ;
                            fgetl(fid);
                        end %for
                    %
                    %speichert Zeile COF xy bis Zeile 2000 -> (Units)
                    %
                    flag = 0; % Hinweiszeichen, ob es sich um eine verkürzte Messung handelt

                    for i = 1 : 2000
                        zeile = strread(fgetl(fid),'%s','delimiter',' ');
                        % zeile ist nun ein Cell-Array  
                        %
                        if isempty(zeile) % Wenn die eingelesene Zeile leer ist (also keine Strings enthält), soll die For-Schleife abgebrochen werden, da das Einlesen der Messdaten beendet ist.
                            flag = 1; % Hinweis für verkürzten Eintrag auf "1" also "wahr" setzen.
                        break
                        end %if
                        %
                        zeile = [zeile{7} ' ' zeile{8}]; % hier wird nun ein String definiert, der nur die Werte der 7. und 8. Spalte enthält
                        fprintf(fid1, '%s \n', zeile);
                    end %for
            %
            %
            %
            % angelegten File schliessen
            fclose(fid1);
            %
            % Zeilen überspringen bis nächster Header -> Test Type
                if ~flag % Für flag = 0 (und damit ~flag "wahr") wird eine Zeile eingelesen. Wenn flag = 1 ist (und damit ~flag "falsch"), wird keine weitere Zeile eingelesen, weil die Leerzeile ja schon in der For-Schleife eingelesen wurde.
                    fgetl(fid);
                end %if
            end% while
        end% try
            %
      fclose(fid);
    end %for


danke im voraus!
Private Nachricht senden Benutzer-Profile anzeigen


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 17.02.2008, 16:24     Titel:
  Antworten mit Zitat      
Moin,
probiert doch mal, ob ihr mit strrep weiterkommt.

Der Code müsste dann an der entsprechenden Stelle so aussehen:
Code:

% Eliminieren von '!', '?', '.', '|' (kann auch beliebig erweitert werden):
test_comm = strrep(test_comm,'!','');
test_comm = strrep(test_comm,'?','');
test_comm = strrep(test_comm,'.','');
test_comm = strrep(test_comm,'|','');
 


Ich bezweifele, dass diese Lösung die feine englische Art ist, aber sie führt zum Ziel...

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
noob
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 70
Anmeldedatum: 15.01.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.02.2008, 12:03     Titel:
  Antworten mit Zitat      
besten dank, hat ja wieder mal sofort toll funktioniert!

beim ploten ist uns noch aufgefallen: das wenn im "title" ein name mit "_" vorkommt, wird die zahl bzw. buchstabe nach dem "_" runtergestellt. weiters stellt er den "_" gar nicht mehr da.

gibts da vielleicht einen möglichkeit, den "title" genauso ausehen zu lassen wie den dateinamen?

lg noobsi

ps: im anhang ein screenshot vom jpeg

jpeg.JPG
 Beschreibung:

Download
 Dateiname:  jpeg.JPG
 Dateigröße:  96.38 KB
 Heruntergeladen:  898 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 18.02.2008, 13:19     Titel:
  Antworten mit Zitat      
Moin,
das einige Zeichen tiefgestellt werden, liegt daran, dass Matlab für den Text innerhalb von Plots standardmäßig den TeX-Interpreter benutzt.
Wenn ihr folgendes schreibt, dann sollte es vernünfig dargestellt werden:
Code:
title(dateiname,'Interpreter','none');


Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
n00b

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.02.2008, 14:34     Titel:
  Antworten mit Zitat      
wir ziehen unseren hut!

danke vielmals

so wie es aussieht sind wir fürs erste mal fertig

danke
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite Zurück  1, 2

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.