如何使用textscan

时间:2016-06-17 05:20:10

标签: matlab matrix octave file-read

我正在尝试从名为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
.
.
.

This is my file - 供参考。

当我尝试使用

读取文件时
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 个答案:

答案 0 :(得分:2)

在这种情况下,我不会使用textscan,因为您的文本文件纯粹是数字的。您的文本文件包含767行,每行200个数字,每个数字由空格分隔。您无法使其更适合与dlmreadMATLAB docOctave doc)一起使用。 dlmread可以一次为您完成此操作:

c = dlmread('xMat.txt');  

c将包含767 x 200数组,其中包含存储在文本文件xMat.txt中的数据。希望您可以在这种情况下转储textscan,因为您真正想要的是尝试将您的数据读入Octave ......而dlmread可以很好地为您完成工作。