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:
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.
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:
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
fid = fopen([pathname filename{f}]) mkdir([pathname filename{f}(1:end-4)]);
%
% Main-Header überspringen (14 Zeilen) for i=1:14;
fgetl(fid);
end %for2 % try
n = 0;
while1 %
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
%
ifisempty(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
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?
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:
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
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.