Как прочитать файл, содержащий числа в Octave, используя textcan
Я пытаюсь импортировать данные из текстового файла с именем xMat.txt
который имеет данные в следующем формате.
200 разделенных пробелами элементов в одной строке и около 767 строк.
Вот как xMat.txt
выглядит.
386.0 386.0 388.0 394.0 402.0 413.0 ... .0 800.0 799.0 796
801.0 799.0 799.0 802.0 802.0 80 ... 399.0 397.0 394.0 391
.
.
.
Это мой файл - для справки.
Когда я пытаюсь прочитать файл с помощью
file = fopen('xMat.txt','r')
c = textscan(file,'%f');
Я получаю вывод как:
> c = { [1,1] =
> 386
> 386
> 388
> 394
> 402
> 413
> 427
> 442
> 458
> 473
> 487
> 499
> 509
> 517
> 524 ... in column format
Что мне нужно, так это матрица размера (767X200). Как я могу это сделать?
1 ответ
Я бы не использовал textscan
в этом случае, потому что ваш текстовый файл является чисто числовым. Ваш текстовый файл содержит 767 строк по 200 номеров в строке, где каждое число разделяется пробелом. Вы не могли бы сделать его лучше подходящим для использования с dlmread
( MATLAB док, октав док). dlmread
может сделать это для вас за один раз:
c = dlmread('xMat.txt');
c
будет содержать 767 x 200
массив для вас, который содержит данные, хранящиеся в текстовом файле xMat.txt
, Надеюсь, вы можете сбросить textscan
в этом случае, потому что то, что вы действительно хотите, пытается прочитать ваши данные в Octave... и dlmread
делает работу за вас довольно приятно.