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

importdata bug?

 

Gast5

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.01.2012, 21:06     Titel: importdata bug?
  Antworten mit Zitat      
Hallo allerseits,
ich habe eine Datei, die folgendermaßen aussieht:
Code:

        A
        B
        C
        D
        E
        F
        G
        H
        I
        J
        K
 


Nun möchte ich diese Daten in einen Vektor importieren. Dazu verwende ich folgenden Code:
Code:
B = importdata('Rest.tran', '%');


Mein Vektor B sieht dann aber leider so aus:
Code:

'        A'
'        B'
'        C'
'        D'
'        E'
'        F'
'        G'
'        H'
'        I'
'        J'
'K'
 


Beim letzten Eintrag (hier K) werden also immer die Leerzeichen davor weggelassen. Kann mir vielleicht jemand helfen, diesen Fehler zu beheben? Handelt es sich vielleicht sogar um einen bug?

Danke schon mal im Voraus.


Harald
Forum-Meister

Forum-Meister


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

für was soll das '%' am Ende gut sein?

Code:
B = importdata('Rest.tran')

gibt die Leerzeichen mit aus.

Grundsätzlich würde ich empfehlen, mit TEXTSCAN zu arbeiten, da der Befehl flexibler ist.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.01.2012, 21:43     Titel:
  Antworten mit Zitat      
Danke erst mal für die schnelle Antwort.

Wozu soll das '%' gut sein?
Meine eigentliche Textdatei ist etwas komplexer als die von mir gepostete. In der ersten "Spalte" stehen Zeichen und in den weiteren Spalten Zahlen. Wenn ich importdata ohne '%' anwende, fügt er die Zahlen in einen anderen Vektor (data) als die Zeichen (textdata). Ich möchte allerdings alles in einem Vektor haben.
Die von Dir gepostete Lösung geht bei meiner komplexeren Textdatei also leider nicht.
Meine private Lösung war bisher die Verwendung von '%', da dieses Zeichen in meiner Textdatei nicht vorkommt. Seltsamerweise tritt hierbei aber der misteriöse Fehler auf, dass in der allerletzten Zeile die Leerzeichen geschluckt werden.

Vielleicht hat ja jemand noch eine Idee, woran es liegen könnte?
 
Harald
Forum-Meister

Forum-Meister


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

dann poste doch bitte ein Beispiel, das deiner Datei ausreichend ähnlich ist.

Ich hatte in meiner Antwort bereits einen weiteren Vorschlag gemacht Wink

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.01.2012, 23:10     Titel:
  Antworten mit Zitat      
Okay, vielleicht war mein Beispiel wirklich etwas weit weg von meiner ursprünglichen Textdatei.
Daher hier ein neues:
Die Eingabedatei sieht wie folgt aus.
Code:

   A                 1   123.430     2.356     2.010     1.402     2.425
   B                 2    23.239     2.112     4.256     2.120     5.224
   C                 3    42.224     2.612     4.256     2.560     2.063
   D                 4   100.440     2.421     4.245     1.562     4.452
 


Ich hoffe, dass hier das Phänomen besser ersichtlich ist: Bei dem oben geposteten Code mit dem '%' werden in der letzten Zeile die Leerzeichen weggelassen und ohne '%' wird in mehrere Vektoren (data, textdata, rowheaders) unterteilt.

Habe mich auch schon etwas in textscan eingelesen. Aber auch hier gelingt es mir mit
Code:
fid = fopen('Rest.tran');
C = textscan(fid, '%s');
fclose(fid);
bzw.
Code:
fid = fopen('Rest.tran');
C = textscan(fid, '%s%s%s%s%s%s%s');
fclose(fid);

nicht, die Daten inklusive Leerzeichen und in einer Zeile und einem Vektor einzulesen. Vielleicht wende ich aber auch textscan falsch an?

Danke für Deine Bemühungen...
 
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.