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

Leerzeichenverhalten bei strread

 

rocco
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 24.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.04.2009, 13:57     Titel: Leerzeichenverhalten bei strread
  Antworten mit Zitat      
Ich bekomme aus einer Textdatei einen String, den der zwei Mal zerlegt werden soll. Das erste Mal an der Stelle einer Raute, danach an der Stelle eines Leerzeichens.

Leider passiert beim zweiten Mal "Zerlegen" ein Fehler. Irgendwie mag er das Leerzeichen nicht mehr.

Hier als Beispiel:

Code:

zeile = 'G01 Z-1#G01 X0 Y3#G01 X2 Y6#';
term_gross = strread(zeile,'%s','delimiter','#','whitespace',''); %FUNKTIONIERT NOCH
for i=1:1:length(term_gross)
    term_klein=strread(zeilen(i),'%s','delimiter',' '); %HIER BEREITS BEIM ERSTEN TERM DER FEHLER, WOBEI term_gross(1) = 'G01 Z-1' IST
end
 


Zuletzt bearbeitet von rocco am 06.04.2009, 15:34, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen


spawnferkel
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 53
Anmeldedatum: 11.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.04.2009, 14:37     Titel:
  Antworten mit Zitat      
Ich bekomme folgenden Fehler:
Zitat:
??? Undefined function or variable 'nc_code'.
Private Nachricht senden Benutzer-Profile anzeigen
 
rocco
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 24.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.04.2009, 15:36     Titel:
  Antworten mit Zitat      
spawnferkel hat Folgendes geschrieben:
Ich bekomme folgenden Fehler:
Zitat:
??? Undefined function or variable 'nc_code'.


Ich hab das Programm etwas abgeändert für den Foreneintrag hier. Dabei ist mir ein Fehler unterlaufen, den ich oben ausgebessert habe.
In der 2. Zeile steht natürlich term_gross = strread(zeile,'%s',... und NICHT term_gross = strread(nc_code,'%s',...
Private Nachricht senden Benutzer-Profile anzeigen
 
spawnferkel
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 53
Anmeldedatum: 11.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.04.2009, 15:39     Titel:
  Antworten mit Zitat      
Jetzt bekomme ich folgenden Fehler:
Zitat:
??? Undefined function or method 'zeilen' for input arguments of type 'double'.
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.04.2009, 16:42     Titel:
  Antworten mit Zitat      
der Code innerhalb der Schleife sollte folgendermaßen aussehen:
Code:
term_klein=strread(term_gross{i},'%s','delimiter',' ');


term_gross ist eine cell-array und um an den Inhalt der einzelnen Zellen (die Character-Arrays) heranzukommen, musst Du die geschweiften Klammern für die Indizierung verwenden.
 
rocco
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 24.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.04.2009, 21:16     Titel:
  Antworten mit Zitat      
Anonymous hat Folgendes geschrieben:
der Code innerhalb der Schleife sollte folgendermaßen aussehen:
Code:
term_klein=strread(term_gross{i},'%s','delimiter',' ');


term_gross ist eine cell-array und um an den Inhalt der einzelnen Zellen (die Character-Arrays) heranzukommen, musst Du die geschweiften Klammern für die Indizierung verwenden.


OK, danke, ich werds nächste Woche probieren!
Private Nachricht senden Benutzer-Profile anzeigen
 
spawnferkel
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 53
Anmeldedatum: 11.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2009, 12:25     Titel:
  Antworten mit Zitat      
Mit meinem Generve wollte ich eigentlich erreichen, das rocco sich etwas mehr Mühe beim Posten gibt.
Ich erwarte eigentlich ein lauffähiges Beispiel, wenigstens aber eine Fehlermeldung ohne da immer nachfragen zu müssen.

Ich schlage statt der Schleife zwei verschachtelte Reguläre Ausdrücke vor:
Code:
zeile = 'G01 Z-1#G01 X0 Y3#G01 X2 Y6#';
s=regexp(regexp(zeile,'#','split'),'\s','split');
s(end)=[];
s{:}
Private Nachricht senden Benutzer-Profile anzeigen
 
rocco
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 24.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.04.2009, 11:15     Titel:
  Antworten mit Zitat      
Anonymous hat Folgendes geschrieben:
der Code innerhalb der Schleife sollte folgendermaßen aussehen:
Code:
term_klein=strread(term_gross{i},'%s','delimiter',' ');


term_gross ist eine cell-array und um an den Inhalt der einzelnen Zellen (die Character-Arrays) heranzukommen, musst Du die geschweiften Klammern für die Indizierung verwenden.


Danke, das hat geklappt. D.h. also mit den runden Klammern komm ich zu den Zeilen und mit den geschwungenen zu den Spalten, richtig so?

Und die Methode mit den regexp() find ich auch ganz gut. Vor ein paar Tagen hab ich mir das mal angesehen und fand es recht praktisch. Danke!
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 - 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.