2015-11-17 3 views
1

У меня есть текстовый файл celldata.txt, содержащий очень простую таблицу данных.Обработка данных таблицы загрузки

-10 11 12
-2 3 4

Проблема заключается в том, когда речь идет о доступе к данным на определенный столбце и ряд. Мой подход заключается в загрузке с использованием loadTable.

Table table; 
int numCols; 
int numRows; 

void setup() { 
size(200,200); 
table = loadTable("celldata.txt","tsv"); 
numRows=table.getRowCount(); 
numCols=table.getColumnCount(); 

} 

void draw() { 
background(255); 
fill(0); 
text(numRows +" "+ numCols,100,100); // Check num of cols and rows 
println(table.getFloat(0,0)); 
} 

Вопрос 1: Когда я делаю это, он говорит, что количество строк 5 и число столбцов только 1. Почему не 5 х 4?

Вопрос 2: Почему table.getFloat (0,0) «NaN» вместо первого элемента данных?

Я хочу использовать намного большую матрицу позже и получить доступ к некоторым элементам (типа double) с чем-то вроде getFloat (i, j) и иметь возможность прокручивать все элементы. Используя те же данные примера, что и я, кто-то может помочь мне понять, что не так с моим кодом и как получить доступ к данным текстового файла? Должен ли я использовать другой метод, чем loadTable?

ответ

0

Вы сказали обработке, что файл содержит значения, разделенной табуляцию (с помощью опции "tsv"), но файл содержит пространства значений, разделенных.

Поскольку ваш файл не содержит никаких вкладок, он считывает всю строку как одно значение. Таким образом, позиция 0,0 вашего стола равна 1 2 3 4, что не является номером, следовательно NaN. Именно поэтому он считает, что в вашей таблице есть только одна колонка.

Вы должны изменить файл celldata.txt на самом деле быть разделены закладками вместо пробелов:

1 2 3 4 
5 6 7 8 
9 10 11 12 
1 2 3 4 
2 3 4 5 

Вы также можете отделить их друг от друга запятыми, а затем использовать опцию "csv".

Если у вас по-прежнему возникают проблемы, вы можете увидеть, что обрабатывает, добавив saveTable(table, "data/new.csv"); в конец вашей функции setup(), а затем посмотрев на этот файл. Это будет список значений, разделенных запятыми, так что вы можете точно увидеть, где Processing считает ячейки таблицы.

Смежные вопросы