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

Aus einem String Zahlen auslesen und auf versch. Variabl.

 

hand1977
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 04.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.03.2013, 18:51     Titel: Aus einem String Zahlen auslesen und auf versch. Variabl.
  Antworten mit Zitat      
Hallo,

ich habe ein kleines Problemchen an dem ich schon relativ lange tüftle.
Ich möchte aus einem String

Code:
string=

36° 47 N, 118° 3 O


die einzelnen Zahlen auslesen. Und zwar die erste Zahl (alle können auch einstellig oder/bzw. dreistellig sein) als geographische Breite in Grad. Die zweite Zahl als geographische Breite in Minuten. Ein N oder ein S als eine Variable mit den Werten 0 für N und 1 für S. Die dritte Zahl als geographische Länge in Grad. die vierte Zahl als geographische Länge in Minuten. Ein O oder ein W als eine Variable mit den Werten 0 für O und 1 für W.


Ziel des ganzen soll es sein diese Koordinaten in ein kartesisches Koordinatensystem zu transformieren.

ich habe keine wirklich gute Idee für eine Lösung. Alles Rumgespiele hat leider nicht geholfen.

Es wäre nett, wenn mir jemand helfen könnte.

Vielen Dank im Voraus.
Private Nachricht senden Benutzer-Profile anzeigen


Amy101078

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.03.2013, 21:59     Titel: Extraktion der Zahlen aus Text
  Antworten mit Zitat      
Hi,

also als erstes mal solltest du die Zahlen aus dem Text extahieren: zum Beispiel ginge das mit

Code:

strcell = textscan(str,'%s','delimiter','°');
 


in strcell stehen dann in strcell{1} bis strcell{n} erstmal die Textabschnitte, die durch ° getrennt werden.

Hilft das schon mal?

Viele Grüße, Amy
 
Amy101078

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.03.2013, 22:12     Titel: oder mit Leerzeichen
  Antworten mit Zitat      
hi nochmal,

oben ist ein kleiner Fehler: du hast die Antwort von textscan nicht in A{1} bis strcell{n}, sondern nur in strcell{1}. Ein einfaches A = strcell{1} befähigt dich dann, über A(1) bis A(n) auf die einzelnen Abschnitte zuzugreifen. Außerdem ist es in Deinem Fall wahrscheinlich besser, den Ursprungstext durch die Leerzeichen zu trennen, also mittels

Code:

strcell =  textscan(str,'%s','delimiter',' ');
A = strcell{1};
 


Dann kannst Du dir im zweiten Schritt die Zahlen in den Abschnitten ausgeben lassen, nämlich durch
Code:

A = regexp(A,'\d');
 


Es lohnt sich, dich mit der Funktion regexp mal auseinanderzusetzen, vielleicht kannst du die gesamte Aufgabe damit auch in einem Einzeiler lösen.

Viele Grüße,

Amy
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 04.03.2013, 23:35     Titel: Re: Aus einem String Zahlen auslesen und auf versch. Variabl
  Antworten mit Zitat      
Hallo hand1977,

Code:
string= '36° 47 N, 118° 3 O'; % Strange CHAR(26) at 7 and18?!
pattern = '%g° %g %c, %g° %g %c';
value = sscanf(string, pattern);
% [36; 47; 78; 118; 3; 79]
char(value(3))  % N
char(value(6))  % O

Hilft das bereits?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
hand1977
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 04.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.03.2013, 17:24     Titel:
  Antworten mit Zitat      
Hi nochmal,

Vielen Dank für die Hinweise an alle.
Die zweite Variante hat am besten funktioniert. Very Happy


Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 05.03.2013, 19:03     Titel:
  Antworten mit Zitat      
Hallo hand1977,

Welches ist denn genau "die zweite"?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
hand1977
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 04.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.03.2013, 19:46     Titel:
  Antworten mit Zitat      
Hallo,

Deine Variante war gemeint. Die Idee mit dem Pattern war gut (kannte ich noch nicht). Smile

Gruß
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.