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

strcmp in if schleife funktioniert nicht

 

schlierfmi
Forum-Anfänger

Forum-Anfänger


Beiträge: 35
Anmeldedatum: 14.03.12
Wohnort: München
Version: R2011a
     Beitrag Verfasst am: 21.04.2012, 14:01     Titel: strcmp in if schleife funktioniert nicht
  Antworten mit Zitat      
Hallo liebe Matlabfreunde,

ich möchte mit Hilfe dieses Codes eine Matrix aus einer Datei einlesen, leider ist noch ein Fehler enthalten, da keine Werte in die "Korrekturmatrix" geschrieben werden.

Code:

fid=fopen('D:\Micha\17_18_2.txt', 'r')

while ~feof(fid) % weiter bis zum Ende der Datei
  tline = fgetl(fid);
  %display(tline);
       if (strcmp('Korrekturen an Rad 1 (um)', tline)==1)
         Korrekturmatrix=textscan(fid, '%f %f %f %f %f %f %f %f %f %f %f','whitespace', 'I ',  'delimiter', '\n','headerlines', 6,'collectoutput',1);
         Korrekturmatrix=Korrekturmatrix{:};
         Korrekturmatrix(:,1) = [];
        break;
        end
end
 fclose(fid);
display(Korrekturmatrix);      


habe die if schleife schon durch switch/case ersetzt und mir den Wert von strcmp ausgeben lassen. Selbst wenn matlab für tline den selben Wortlaut anzeigte ("Korrekturen an Rad 1 (um)") leiferte strcmp immer nur 0.

Ich komme einfach nicht auf meinen Fehler...

Grüße Michael
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.04.2012, 14:33     Titel:
  Antworten mit Zitat      
Hallo,

ohne die Datei zu sehen wird es schwierig, dir zu helfen.

Was du versuchen könntest: mit STRFIND nach einem Schlüsselwort suchen anstatt die komplette Zeile vergleichen zu wollen.

Ich kann mir nämlich z.B. vorstellen, dass die Zeile irgendwelche nicht darstellbare Zeichen enthält.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
schlierfmi
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 35
Anmeldedatum: 14.03.12
Wohnort: München
Version: R2011a
     Beitrag Verfasst am: 21.04.2012, 15:50     Titel:
  Antworten mit Zitat      
die Datei ist von der Form:
XXXXXXXXXXXXXXXXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxx xxxxxxxxxxxaaa xxxxxxxxxxx xxx *
**************************** XXX****************** 19.04.12 10:35:16 *
xxxxx
xxxxx
-------------------------------------------------------------------------
Korrekturen an Rad 1 (um)
-------------------------------------------------------------------------

X/X 0. 1.6 3.1 4.7 6.2 7.8 9.3 10.9 12.4 14.0
I---------------------------------------------------------------------I
0.I 53.1 52.7 51.6 51.3 50.5 50.3 50.0 49.9 50.0 50.2I
1.20I 59.5 58.8 58.1 57.7 57.2 57.0 56.2 56.1 56.1 56.3I
2.40I 59.3 58.8 58.2 57.9 57.5 57.3 57.1 57.0 57.0 57.2I
3.60I 55.9 55.4 55.0 54.7 54.5 54.3 54.7 54.7 54.7 54.8I
4.80I 50.6 50.3 50.0 49.7 49.5 49.4 48.7 48.6 48.6 48.7I
5.99I 52.3 52.0 51.8 51.6 51.4 51.3 52.4 52.4 52.4 52.5I
7.19I 36.3 36.1 35.9 35.8 35.7 35.6 33.2 33.1 33.1 33.2I
8.39I 20.7 20.6 20.5 20.4 20.3 20.3 20.6 20.6 20.6 20.6I
9.59I 5.3 5.2 5.2 5.2 5.2 5.2 8.2 8.2 8.2 8.2I
10.79I 10.0 10.0 9.9 9.9 9.9 9.9 10.3 10.3 10.3 10.3I


-------------------------------------------------------------------------
xxxxxx XXXXXXXX
-------------------------------------------------------------------------
usw


Das Auslesen funktioniert soweit auch wenn ich die Datei so kürze, dass "Korrekturen an Rad 1 (um)" gleich in der ersten Zeile steht.
Nur das Suchen des Ausdruckes im Kontext funktioniert nicht.

wie würde das mit strfind funktionieren?
strfind gibt doch "Platznummern" aus
Mein Vorschlag:
Code:
if strfind(tline,'Korrekturen an Rad 1 (um)')~=0


funktioniert aber leider auch nicht...
Auch hier schreibt er nichts in die Variable Korrekturmatrix
Private Nachricht senden Benutzer-Profile anzeigen
 
schlierfmi
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 35
Anmeldedatum: 14.03.12
Wohnort: München
Version: R2011a
     Beitrag Verfasst am: 21.04.2012, 15:55     Titel:
  Antworten mit Zitat      
ach super es hat doch mit strfind geklappt, hatte nur nen kleinen Tippfehler drin, danke Harald!
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.