如何使用 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
可以很好地完成这项工作。
我正在尝试从名为 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
可以很好地完成这项工作。