2016-12-12 1 views
0

Ich möchte die zweite Spalte einer Echtzeit ändern Textdatei mit TextScan Befehl. Ich kann nur die erste Spalte der Textdatei nehmen, aber ich möchte die zweite Spalte. Hier ist mein Code:Nur eine Spalte mit Textscan scannen

fileid = fopen (Path); 
    rxt = textscan (fileid, '%d %*[^\n]'); 
    fclose (fileid); 

    arr = rxt {1,1}; 

Wie kann ich dies zum Lesen nur der zweiten Spalte ändern?

Hier ist ein Teil von Textdatei:

226, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, 0,00, 0,00, 0,00 
227, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, 0,00, 0,00, 0,00 
228, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, -187500,02, 0,00, 0,00, 0,00 

Antwort

2

Sie können angeben, dass Sie die erste Zahl verwerfen möchten (%*d), halten Sie die zweite (%d), und entsorgen Sie den Rest der Zeichenfolge (%*[^\n]

), obwohl auf den Daten
textscan(fileid, '%*d, %d, %*[^\n]') 

Basierend Sie eine komma separted Datei eingefügt haben, dass auch verwendet , für den Radix Punkt. Daher möchten Sie die zweite und die dritte Zahl einlesen und in eine Gleitkommazahl umwandeln:

numbers = textscan(fileid, '%*d, %d,%d %*[^\n]'); 
numbers = arrayfun(@(a,b)a * 10^b, numbers{:})