MATLAB读取文件——从非常规文本文件中读取数据

从非常规文本文件中读取数据

以下示例演示如何使用 textscan 函数从非常规文件中导入数据。在使用 textscan 时,您的数据无需为常规的行列模式,但必须为重复模式。

创建一个名为 nonrect.dat 的文件,其中包含以下内容(复制并粘贴到文本编辑器):

begin
v1=12.67
v2=3.14
v3=6.778
end
begin
v1=21.78
v2=5.24
v3=9.838
end

使用 fopen 函数打开要读取的文件。

fileID = fopen('nonrect.dat');

fopen 返回一个文件标识符 fileIDtextscan 调用该标识符从文件中读取数据。

使用格式设定符和分隔符参数描述数据的模式。典型的格式设定符包括:表示字符向量的 '%s',表示整数的 '%d' 或者表示浮点数的 '%f'。要导入 nonrect.dat,请使用格式设定符 '%*s' 指示 textscan 跳过包含 begin 和 end 的行。将字面值 'v1=''v2=' 和 'v3=' 作为格式设定符的一部分,这样 textscan 也将忽略这些字面值。

formatSpec = '%*s v1=%f v2=%f v3=%f %*s';

使用 textscan 导入数据。将文件标识符 formatSpec 作为输入传递。由于每个数据字段都在一个新行上,因此分隔符为换行符 ('\n')。要将所有浮点数据合并到单个数组中,请将 CollectOutput 名称-值对组参数设置为 true

C = textscan(fileID,formatSpec,...            
                'Delimiter', '\n', ...
                'CollectOutput', true)
C = 

    [2x3 double]

textscan 返回元胞数组 C

关闭文件。

fclose(fileID);

查看 C 的内容。

celldisp(C)
C{1} =
 
   12.6700    3.1400    6.7780
   21.7800    5.2400    9.8380



posted @ 2020-12-06 21:06  Ted_Zhao  阅读(442)  评论(0编辑  收藏  举报