Как прочитать файл, содержащий числа в 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 делает работу за вас довольно приятно.

Другие вопросы по тегам