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

Zeilen unbekannter Länge <--> DLMREAD?

 

Leech
Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 12.04.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.06.2014, 16:07     Titel: Zeilen unbekannter Länge <--> DLMREAD?
  Antworten mit Zitat      
Hallo,

ich hantiere mit Matrizen mit vielen tausend Zeilen und weitaus mehr Spalten (Dateigröße 1,2gb).

Ich möchte nun jeweils eine Zeile dieser Matrix einlesen und damit weiter hantieren. Ich hatte (als die Matrix noch deutlich kleiner war) dlmread benutzt und will das nun eigentlich weiter nutzen, da kenne ich wenigstens die Sytax. Das Problem ist aber, dass eine Zeile immer eine andere Anzahl von Spalten hat.
Dlmread möchte aber wissen wieviele Spalten ich einlesen will. Bedeutet: ich habe eine Zeile mit ein paar hunderttausend Elementen und andere mit ein paar tausend mehr oder weniger. Wenn ich nun dlmread die maximale Anzahl von Spalten die vorkommt sage
Code:
data=dlmread('lambda-T1.txt','',[i 0 i max_colums]);
und ich eine Zeile habe, die kürzer ist, erzeugt er einen Fehler und kann das nicht einlesen. Ich hatte gehofft er würde es mit 0en auffüllen.

Beispiel:
In Test.txt ist eine Mini-Matrix enthalten. Die erste Zeile der Matrix enthält 7 Zeichen.
Code:
M=dlmread('Test.txt','',[0 0 0 6])

zeigt:
Code:
M =

     1     5     5     5     5     5     5


Alles schön soweit. Die zweite Zeile ist kürzer und dann passiert das:
Code:
M=dlmread('Test.txt','',[1 0 1 6])
??? Index exceeds matrix dimensions.

Error in ==> dlmread at 157
        result= result(:,1:ncols);



Er füllt das also nicht mit 0en auf.
Kann ich dlmread irgendwie dazu kriegen mir einfach die Zeile einzulesen, mit so vielen Spalten, wie da halt drin stehen? Oder muss ich einen ganz anderen Ansatz nehmen?
Ziel ist es von dieser verherend großen Matrix jeweils eine Zeile einzulesen und anschließend Zugriff auf jedes Element zu haben.


Vielen Dank
Pierre

Test.txt
 Beschreibung:

Download
 Dateiname:  Test.txt
 Dateigröße:  53 Bytes
 Heruntergeladen:  358 mal
Private Nachricht senden Benutzer-Profile anzeigen


Leech
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 12.04.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.07.2014, 10:16     Titel:
  Antworten mit Zitat      
Niemand eine Idee?
Private Nachricht senden Benutzer-Profile anzeigen
 
nurGast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.02.2015, 09:04     Titel: matlab-dlmread bei unbekannter Anzahl von Zeilen
  Antworten mit Zitat      
Code:
Data=dlmread(fid,',',[1,1,NaN,34]);
[M N]=size(Data)

ließt alle Zeilen aber nur bis zur 34.-ten Spalte.

NaN ist der Tip (geht zumindest mit "meinem" Uraltmatlab
 
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.