如何使用 textscan 在 Octave 中读取包含数字的文件

How to read a file containing numbers in Octave using textscan

我正在尝试从名为 xMat.txt 的文本文件导入数据,该文件具有以下格式的数据。

200 space 一行分隔元素和一些 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) 的矩阵。我该怎么做?

在这种情况下我不会使用 textscan,因为您的文本文件是纯数字的。您的文本文件包含 767 行,每行 200 个数字,其中每个数字由 space 分隔。您无法让它更适合与 dlmread (MATLAB doc, Octave doc) 一起使用。 dlmread 可以一次性为您完成:

c = dlmread('xMat.txt');  

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