|
|
|
Ersetzen von Zeichen in Charakter Cell-Arrays |
|
| FrK |

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 24.02.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.03.2014, 17:51
Titel: Ersetzen von Zeichen in Charakter Cell-Arrays
|
 |
Servus!
Problem ist folgendes:
Ich habe ein I x I großen Cell-Array C, der gefüllt ist mit Char-Werten.
Mit
möchte ich in diesem alle Kommata durch Punkte ersetzen.
In meinem Fall ersetzt der Befehl allerdings ALLE Zeichen durch Punkte oder was auch immer ich als zweites Argument einsetze.
Jemand eine Idee warum?
Danke und Grüße.
|
|
|
|
|
|
| Mmmartina |

Forum-Meister
|
 |
Beiträge: 745
|
 |
|
 |
Anmeldedatum: 30.10.12
|
 |
|
 |
Wohnort: hier
|
 |
|
 |
Version: R2020a
|
 |
|
|
 |
|
Verfasst am: 19.03.2014, 21:15
Titel:
|
 |
Greifst du auf die einzelnen Elemente des Cell zu (C{1,1},C{1,2},... ), oder gibst du tatsächlich direkt C ein?
Vermutlich musst du mit zwei Schleifen arbeiten, mit denen du auf jedes Element des Cellarrays einzeln zugeifst.
_________________
LG
Martina
"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
|
|
|
|
| FrK |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 24.02.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.03.2014, 22:07
Titel:
|
 |
Ich gebe direkt C als erstes Argument an.
Paradoxerweise funktioniert es beim ersten mal (ich wende regexprep 2 mal an).
Ich lese aus HTML-Code eine Tabelle aus. Der Code gibt aber Zahlen als CHAR aus, 1000er-Trennzeichen erscheinen als Punkte, "normale" Trennzeichen als Kommata.
Um daraus DOUBLE zu generieren, will ich erst alle Punkte löschen
und dann Kommata durch Punkte ersetzen
Wende ich nur letzteren an, funktioniert es, alle Zahlen >999,99 werden mit
aber zu NaN, da Matlab mit 2 Punkten in einem Value nichts anfangen kann.
|
|
|
|
| denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 19.03.2014, 22:44
Titel:
|
 |
Hallo
in REGEXP hat Punkt eine andere Funktion und zwar steht dieses Zeichen für beliebiges Zeichen, wenn du explizit Punkt entfernen möchtest muss man dieses Zeichen escapen
so wäre es richtig:
Zuletzt bearbeitet von denny am 20.03.2014, 15:06, insgesamt einmal bearbeitet
|
|
|
|
| FrK |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 24.02.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.03.2014, 09:17
Titel: Problem gelöst!
|
 |
|
Danke, funktioniert exakt wie beschrieben!
|
|
|
|
| Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 22.03.2014, 15:39
Titel: Re: Problem gelöst!
|
 |
Hallo FrK,
Regular Expressions sind wirklich ziemlich schlau. Für einfache Buchstaben-Ersetzungen ist das aber mit Knonen auf Spatzen geschossen, da die Intelligenz immer mehr Rechenzeit benötigt und zu unerwarteten Seiteneffekten führen kann, wie in Deinem Beispiel. Einfacher:
Gruß, Jan
|
|
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|