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

Funktion zum Auslesen gesucht

 

adrianaachen
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 29.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.01.2013, 15:00     Titel: Funktion zum Auslesen gesucht
  Antworten mit Zitat      
Hallo zusammen,

welche Funktion liest mir bei den Zeilen:

"dsggsdgg. . . . 55 Dimension 90"

"aaa. . . . . . . . 60 Dimension 78"

die Werte die immer nach dem Suchwort Dimension kommen herause ?

textscan habe ich benutzt wenn die Anzahl der character vor Dimension gelich waren, jedohc sind die unterschiedlich. Ich brauche eine Funktion die erst ab dem Suchwort Dimension "zählt"...

Was kann man da machen ?
Private Nachricht senden Benutzer-Profile anzeigen


bushmills
Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 07.10.10
Wohnort: ---
Version: R2010a
     Beitrag Verfasst am: 10.01.2013, 15:10     Titel:
  Antworten mit Zitat      
Hi,

probier es mal mit einer regular expression:

Beispiel:
Code:

str = 'dsggsdgg. . . . 55 Dimension 90'
pos = regexp(str,'Dimension','end')
a = str((pos + 2):length(str))
 

Die variable "a" enthält nun den gesuchten Wert, in dem oberen Fall "90"

Gruß und viel erfolg
bushmills
Private Nachricht senden Benutzer-Profile anzeigen
 
adrianaachen
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 29.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.01.2013, 15:35     Titel:
  Antworten mit Zitat      
super, vielen Dank für die schnelle und exzellente Hilfe! Genau das habe ich gesucht.

Meinst du wenn man die Zeile in der Form

"dsggsdgg. . . . 55 Dimension. . . . 90"

vorliegen hat, gibt es da auch etwas "schöneres" als
den Code auf
Code:
a = str((pos + 8):length(str))
abzuändern?

Am besten wäre, einfach den darauffolgenden Float auszulesen denke ich, aber bin mir nicht sicher wie das funktioniert?

Vielen Dank nochmal!
Private Nachricht senden Benutzer-Profile anzeigen
 
Seban
Forum-Meister

Forum-Meister


Beiträge: 600
Anmeldedatum: 19.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 10.01.2013, 16:21     Titel:
  Antworten mit Zitat      
Hi,

Eine Möglichkeit:

Code:
str = 'dsggsdgg. . . . 55 Dimension........ 90';
pos = regexp(str,'Dimension','end');

for i = (pos+1):length(str)
    if regexp(str(i), '[\d]')
        start = i;
        break;
    end
end
a = str((start):length(str))


Ich kann mir auch vorstellen, dass man im ersten regexp direkt nach Dimension{\D} sucht, wobei die geschweiften Klammern eine mögliche Wiedrholung nicht numerischer Werte (\D) signalisieren soll. Das in der Hilfe zu regexp rauszusuchen, überlass ich aber dir Wink

Grüße aus AC nach AC Very Happy
_________________

Richtig fragen
Debugging
Private Nachricht senden Benutzer-Profile anzeigen
 
bushmills
Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 07.10.10
Wohnort: ---
Version: R2010a
     Beitrag Verfasst am: 10.01.2013, 16:57     Titel:
  Antworten mit Zitat      
und hier noch ein Vorschlag zum Thema regular expression:

Code:

[si ei xt mt] = regexp(str, '(\d)*(\d)$')
a = str2num(mt{1})
 


Somit hast du die letzte Zahl im String und musst diese nur mit Hilfe von str2num konvertieren.

Aber wie Seban bereits sagte, ist die Hilfe zum regexp sehr ergiebig Wink
Private Nachricht senden Benutzer-Profile anzeigen
 
adrianaachen
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 29.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.01.2013, 16:59     Titel:
  Antworten mit Zitat      
Danke für dei Grüße, auch zurück Smile

Danke euch für die Hinweise, wird sich shcon was finden, welches ich am besten benutze! werde aber auch nochmal in der Hilfe nachschauen...
Private Nachricht senden Benutzer-Profile anzeigen
 
Seban
Forum-Meister

Forum-Meister


Beiträge: 600
Anmeldedatum: 19.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 10.01.2013, 19:49     Titel:
  Antworten mit Zitat      
bushmills hat Folgendes geschrieben:
Aber wie Seban bereits sagte, ist die Hilfe zum regexp sehr ergiebig Wink

ja, so war es gemeint Very Happy
regexp kann viel, da hab ich mich noch nicht ganz durch gekämpft (oder noch nicht gemusst)
_________________

Richtig fragen
Debugging
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.