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

text auslesen

 

Platin
Forum-Century

Forum-Century


Beiträge: 174
Anmeldedatum: 07.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.08.2010, 12:59     Titel: text auslesen
  Antworten mit Zitat      
Hey,

ich möchte aus einer Matrix die text und Zahlen enthält beides auslesen.
Habe mir gedacht da das nicht gleichzeitig geht, das man erst den text in einer matrix speichert und dann die zahlen in einer anderen matrix und anschließend beides matrizen zu einer zusammenfügt. geht das?

die matrix sieht so aus:
av af ah hgj hjh jhj hjh h h
1 .. . .. ... hier stehen zahlen.....
2
3
4
5
6
Private Nachricht senden Benutzer-Profile anzeigen


yankemen
Forum-Century

Forum-Century


Beiträge: 104
Anmeldedatum: 14.04.10
Wohnort: ---
Version: 32: 2008a & 2010a
     Beitrag Verfasst am: 04.08.2010, 13:12     Titel:
  Antworten mit Zitat      
Moin Platin,

hier im Forum trat dieses Problem schon öfters auf.
Du kannst eine Datei mit fgetl Zeilenweise einlesen. Bzw. mit fscanf auch von Zeile x bix Zeile y, z.b. inf, um alles zu nehmen, was noch kommt.

HTH,
yankemen
_________________

Code:
% Kommentare brauchen ein Leerzeichen nach dem %
Gibt es ein Ist und ein Wunsch-Soll? Gibt es Beispiele zum Durchprobieren? Wenn selbstgeschriebene Funktionen aufgerufen werden: können sie bitte angehangen werden? Gab es Fehlermeldungen?
Stimmen die Werte, wenn der Debugger mit Haltepunkten etc. eingesetzt wird?
Danke Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.08.2010, 13:19     Titel:
  Antworten mit Zitat      
Hallo,

ich würde hier zwei aufeinanderfolgende Aufrufe von textscan (einen für den Header, einen für die Zahlen) empfehlen.
[Siehe Example 8 in der Doku zu TEXTSCAN].

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

Forum-Century

Forum-Century


Beiträge: 174
Anmeldedatum: 07.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.08.2010, 13:22     Titel:
  Antworten mit Zitat      
hallo danke für eure antwort,

ich kann also mit fscan text und Zahlen einlesen?
Ich bin absoluter matlab neuling und weiß nicht so recht was ihr meint.
sorry, könnt ihr mir das nochmal genauer erklären?

Mfg
Private Nachricht senden Benutzer-Profile anzeigen
 
yankemen
Forum-Century

Forum-Century


Beiträge: 104
Anmeldedatum: 14.04.10
Wohnort: ---
Version: 32: 2008a & 2010a
     Beitrag Verfasst am: 04.08.2010, 13:27     Titel:
  Antworten mit Zitat      
Moin Platin,

meine Lösung arbeitet nur mit fscanf - weil es mal funktionierte und ich mich nicht mit den Feinheiten und Unterschieden zu anderen befasste:

http://www.gomatlab.de/txt-datei-in-matlab-einlesen-t10593.html

(Ich ändere den Eintrag nur gerade, weil ich feststellte, dass Kommentare nicht als solche angezeigt werden, wenn nach dem % kein Leerzeichen kommt.)

HTH,
yankemen
_________________

Code:
% Kommentare brauchen ein Leerzeichen nach dem %
Gibt es ein Ist und ein Wunsch-Soll? Gibt es Beispiele zum Durchprobieren? Wenn selbstgeschriebene Funktionen aufgerufen werden: können sie bitte angehangen werden? Gab es Fehlermeldungen?
Stimmen die Werte, wenn der Debugger mit Haltepunkten etc. eingesetzt wird?
Danke Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.08.2010, 13:30     Titel:
  Antworten mit Zitat      
Hallo Platin,

mach dir doch bitte die Mühe und lies die Referenz, die man dir gibt.
In der Hilfe zu textscan ist ein Beispiel, das genauso aufgebaut ist wie deines (soweit man das sehen kann). Versuch es also doch bitte mal so?

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

Forum-Century

Forum-Century


Beiträge: 174
Anmeldedatum: 07.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.08.2010, 13:35     Titel:
  Antworten mit Zitat      
hey,

also bei mir ist das so das ich nur 1 Textzeile habe:
Also CH CJ CK =Text
... ... .... =Zahlen

Und ich lediglich diese Matrix so wie sie da steht kopieren möchte. Nur das der Text eben genauso wie die zahlen auch eine extra zelle bekommt.
Ist das echt so kompliziert? Ist doch eigentlich "nur" der Wunsch das mir matlab text und zahlen kopiert und beides in ne matrix packt.

MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
Platin
Themenstarter

Forum-Century

Forum-Century


Beiträge: 174
Anmeldedatum: 07.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.08.2010, 13:56     Titel:
  Antworten mit Zitat      
ja also ich habe das jetzt mal mit textscan versucht.
folgender maßen:
Code:
fid=fopen('pfad');
C=textscan(fid,'%s%s');
fclose(fid);

Aber ich verstehe nicht ganz wie er das macht.
Also so wie ichs jetzt habe liest er alles in 2 zellen, wenn ein s weglase ließt er alles in 1 zelle. Aber ich habe 132 spalten, muss ich da jeden einzelne angeben mit %s oder wie geht das ?

MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
Platin
Themenstarter

Forum-Century

Forum-Century


Beiträge: 174
Anmeldedatum: 07.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.08.2010, 14:08     Titel:
  Antworten mit Zitat      
kann mir niemand helfen?

Ich benutze maltab seit ein paar tagen und weiß gerade mal wie man eine datei damit öffnet.
In der Hilfe steht alles auf englisch und ich versuche hier schon stundenlang diesen text File zu lesen und bekomme es einfach nicht hin !
Ist ja nicht so das ich's nicht versuche! Sehe einfach nicht mehr durch !!
Private Nachricht senden Benutzer-Profile anzeigen
 
yankemen
Forum-Century

Forum-Century


Beiträge: 104
Anmeldedatum: 14.04.10
Wohnort: ---
Version: 32: 2008a & 2010a
     Beitrag Verfasst am: 04.08.2010, 14:11     Titel:
  Antworten mit Zitat      
Moin Platin,

im Prinzip ja. Woher soll er sonst wissen, was ihn erwartet?
Alternativ kannst Du eine Schleife bauen, die soviele %s hintereinanderschreibt, wie Du es brauchst.

Vergiss nicht, dass die Zahlen in einem einfachen Array sind, während Strings als Cell zu handhaben sind. (wenn es hintereinander stehen soll).

Probier doch, mein Beispiel anzupassen.

yankemen

PS: Antwortzeiten von Forenmitgliedern sind in günstigen Fällen so schnell wie bisher. Normalerweise nicht. Weil weder Du noch ich darauf warten, eine Frage zu bearbeiten.
_________________

Code:
% Kommentare brauchen ein Leerzeichen nach dem %
Gibt es ein Ist und ein Wunsch-Soll? Gibt es Beispiele zum Durchprobieren? Wenn selbstgeschriebene Funktionen aufgerufen werden: können sie bitte angehangen werden? Gab es Fehlermeldungen?
Stimmen die Werte, wenn der Debugger mit Haltepunkten etc. eingesetzt wird?
Danke Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

für das Weiterverarbeiten wird dir am besten damit gedient sein, wenn du das so verwendest wie im referenzierten Beispiel.

Wenn du 132 Spalten hast (davon war ja am Anfang keine Rede), kannst du den Formatstring automatisiert erzeugen über
Code:
repmat('%s', 1, 132)
bzw.
Code:
repmat('%f', 1, 132)


In dem Beispiel brauchst du 4 Zeilen, davon eine zum Öffnen und eine zum Schließen der Datei. Das ist doch nun wirklich kein unvertretbarer Aufwand?

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

Forum-Century

Forum-Century


Beiträge: 174
Anmeldedatum: 07.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.08.2010, 14:28     Titel:
  Antworten mit Zitat      
Puhh,

ok danke für eure Hilfe, aber ich kapituliere.
Keine Ahnung, ich lesen nur noch array, strin %s ,,,,
Ich sehe einfach nicht mehr durch. Habe tierische kopfschmerzen.
ich sehe einfach kein zusammenhang indem was ich ihm mit %s sage oder mit %d8, weil egal was ich eingebe, er gibt mir ja mit %s auch Zahlen aus, ob wohl in der hilfe steht das das für string steht.


Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

kapitulieren nach so einer kurzen Zeit? Etwas mehr Geduld sollte man wohl mitbringen - egal mit welcher Sprache man arbeitet.
Wenn du einen Dateiausschnitt (die ersten 5 Zeilen) postest, könnte man das fertige Skript in wenigen Minuten schreiben - und du würdest sehen, dass es sich nur minimal von dem Beispiel in der Doku unterscheidet.

Ich poste übrigens "nur" neben der eigentlichen Arbeit her, es kann also schon mal dauern.

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

Forum-Century

Forum-Century


Beiträge: 174
Anmeldedatum: 07.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.08.2010, 14:35     Titel:
  Antworten mit Zitat      
ich will ja auch nicht das mir das fertige ding einfach so gegeben wird, aber gibt es nicht irgendwo ein Hilfe auf deutsch ?
ich will schon verstehen was da dann in meinem programm so abläuft.
es handelt sich bei mir speziell um eine 420 Zeilen und 132 Spalten Matrix.
Die erste Zeile enthält nur Text, also jeder Spalteneintrag ist dort Text.
Ab der 2 Zeile handelt es sich nur noch um Zahlen der Form 0.00x.
Über der Matrix stehen 3 Zeilen Text die nicht kopiert werden sollen.
Wenn du mir hilfst, könntes du denn dein Skript editieren so das ich weiß wie was gemeint ist und es nächstes mal bei einem ähnlichen problem selber auch kann. möchte ja schon lernen mit matlab umzugehen aber es dauert einfach viel zu lang sich alles komplett auf englisch zu erlesen

grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

die MATLAB-Dokumentation gibt es nur auf Englisch.
Es gibt allerdings verschiedenste einführende Skripte / Vorlesungen etc.

Buchempfehlungen:

Zur Einführung (habs nicht gelesen, aber Inhaltsangabe sieht gut aus):
http://www.amazon.de/Die-nicht-kurz.....MATLAB/dp/3839145643#noop

Als Nachschlagewerk, wenn du dir ein gewisses Grundwissen angeeignet hast:
http://www.gomatlab.de/matlab-kompa.....light,matlab+kompakt.html

Poste bitte eine Datei mit den ersten 10 Zeilen oder so, damit eventuelle Feinheiten wie Spaltentrennzeichen auch berücksichtigt werden können.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.