Main Content

将文本文件中的数值数据导入矩阵

从存储为逗号分隔的或带分隔符的文本文件的文件中,将数值数据导入为 MATLAB® 数组。

导入逗号分隔的数据

以下示例说明如何从文本文件中导入逗号分隔的数值数据。创建样本文件,读取文件中的所有数据,然后仅读取从指定位置开始的部分数据。

创建一个名为 ph.dat 且包含逗号分隔的数据的样本文件,然后显示该文件的内容。

rng('default')
A = 0.9*randi(99,[3 4]);
writematrix(A,'ph.dat','Delimiter',',')
type('ph.dat')
72.9,81.9,25.2,86.4
81,56.7,49.5,14.4
11.7,9,85.5,87.3

使用 readmatrix 函数读取该文件。函数将返回一个包含文件中的数据的 3×4 double 数组。

M = readmatrix('ph.dat')
M = 3×4

   72.9000   81.9000   25.2000   86.4000
   81.0000   56.7000   49.5000   14.4000
   11.7000    9.0000   85.5000   87.3000

仅导入文件中从第一行、第三列开始的数据的矩形部分。创建一个导入选项对象,并使用 SelectedVariableNamesDataLines 属性指定要导入的列和行。然后从文件中导入所选部分的数据。

opts = detectImportOptions('ph.dat');
opts.SelectedVariableNames = {'Var3','Var4'};
opts.DataLines = [1 3];
readmatrix('ph.dat',opts)
ans = 3×2

   25.2000   86.4000
   49.5000   14.4000
   85.5000   87.3000

导入分隔的数值数据

以下示例演示如何使用 writematrix 函数导入由任何单个字符分隔的数值数据。创建样本文件,读取整个文件,然后读取文件从指定位置开始的部分数据。

创建一个名为 num.txt 的制表符分隔的文件,其中包含一个 4×4 数值数组,然后显示该文件的内容。

rng('default')
A = randi(99,[4,4]);
writematrix(A,'num.txt','Delimiter','\t')
type('num.txt')
81	63	95	95
90	10	96	49
13	28	16	80
91	55	97	15

读取整个文件。readmatrix 函数会自动确定分隔符并返回一个 4×4 的 double 数组。

M = readmatrix('num.txt')
M = 4×4

    81    63    95    95
    90    10    96    49
    13    28    16    80
    91    55    97    15

仅读取文件中从第二行、第三列开始的矩形数据块。创建一个导入选项对象,并使用 SelectedVariableNamesDataLines 属性指定要导入的列和行。然后从文件中导入所选部分的数据。

opts = detectImportOptions('num.txt');
opts.SelectedVariableNames = {'Var3','Var4'};
opts.DataLines = [2 4];
readmatrix('num.txt',opts)
ans = 3×2

    96    49
    16    80
    97    15

另请参阅

| | |

相关主题