YiDongZhao

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

以下示例演示如何使用 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



分类:

技术点:

相关文章: