文档

fscanf

从文本文件中读取数据

语法

一个= fscanf(文件标识,formatSpec)
一个= fscanf(文件标识,formatSpec sizeA)
[数]= fscanf (___)

描述

例子

一个= fscanf (文件标识,formatSpec)从一个开放的文本文件中读取数据到列向量一个并解释文件中的值根据所指定的格式formatSpec。的fscanf功能申请在整个文件的格式和文件尾标志文件指针的位置。如果fscanf不能匹配formatSpec只需要读取数据,部分匹配和停止处理。

文本文件由文件标识符,表示文件标识。使用打开外部文件打开文件,指定字符编码,获得文件标识价值。当你读完,关闭文件通过调用文件关闭(文件标识)

例子

一个= fscanf (文件标识,formatSpec,sizeA)文件数据读入一个数组,一个维度,sizeA后,和立场文件指针读的最后一个值。fscanf填充一个列顺序。sizeA必须是一个正整数或表单吗(mn),在那里n是正整数。

例子

(一个,)= fscanf (___)此外返回的字段数fscanf读到一个。对于数值型数据,这是阅读的数量值。您可以使用该语法与任何输入参数的前面的语法。

例子

全部折叠

创建一个示例文本文件,其中包含浮点数。

1 x = 100 *兰特(8日);文件标识= fopen (“nums1.txt”,' w ');流(文件标识,“% 4.4 f \ n”,x);文件关闭(文件标识);

查看文件的内容。

类型nums1.txt
81.4724 90.5792 12.6987 91.3376 63.2359 9.7540 27.8498 54.6882

打开文件阅读和获取文件标识符,文件标识

文件标识= fopen (“nums1.txt”,“r”);

定义的格式要读取的数据。使用' % f '指定浮点数。

formatSpec =' % f ';

读取文件数据,填充输出数组,一个列顺序。fscanf申请的格式,formatSpec,在整个文件。

一个= fscanf(文件标识,formatSpec)
一个=8×181.4724 90.5792 12.6987 91.3376 63.2359 9.7540 27.8498 54.6882

一个是一个列向量包含的数据文件。

关闭该文件。

文件关闭(文件标识);

创建一个示例文本文件,其中包含整数和浮点数。

x = 1:1:5;y = [x,兰德(1、5)];文件标识= fopen (“nums2.txt”,' w ');流(文件标识,“% d % 4.4 f \ n”,y);文件关闭(文件标识);

查看文件的内容。

类型nums2.txt
1 0.6324 0.9134 0.1270 0.9058 0.8147 - 2 3 4 5

打开文件阅读和获取文件标识符,文件标识

文件标识= fopen (“nums2.txt”,“r”);

定义的格式的数据读取和输出数组的形状。

formatSpec =“% d % f”;sizeA =[2正);

读取文件数据,填充输出数组,一个列顺序。fscanf重用的格式,formatSpec,在整个文件。

一个= fscanf(文件标识,formatSpec sizeA)
一个=2×51.0000 2.0000 3.0000 4.0000 5.0000 0.8147 0.9058 0.1270 0.9134 0.6324
文件关闭(文件标识);

转置数组,这样一个匹配的方向数据文件中。

=“
一个=5×21.0000 0.8147 2.0000 0.9058 3.0000 0.1270 4.0000 0.9134 5.0000 0.6324

跳过特定字符样本文件,只返回数值数据。

创建一个示例文本文件包含温度的值。

str =78°C 72°C 64°C 66°C 49°C ';文件标识= fopen (“temperature.dat”,' w ');流(文件标识,' % s 'str);文件关闭(文件标识);

读取文件中的数据,不文本,°C。返回值的数量fscanf读取。扩展的ASCII代码176代表程度的迹象。

文件标识= fopen (“temperature.dat”,“r”);度= char (176);[数]= fscanf(文件标识,' % d '“C”)文件关闭(文件标识);
一个= 78 72 64 66 = 5 49计数

一个是一个向量包含文件中的数值。表明fscanf读五个值。

输入参数

全部折叠

文件标识符的一个开放的文本文件,指定为一个整数。在阅读文件fscanf,您必须使用打开外部文件打开文件并获得文件标识

数据类型:

文件格式的数据字段,指定为一个特征向量或字符串标量的一个或多个转换说明符。当fscanf读取一个文件,它试图匹配指定的数据格式formatSpec

数值字段

此表列出了可用的转换为数字输入说明符。fscanf将值转换为十进制(基地10)表示。

数值字段类型 转换说明符 细节

整数,签署了

% d

以10为底的

%我

文件中的值确定基础:

  • 默认值是10。

  • 如果最初的数字0 x0 x,然后是十六进制的值(基地16)。

  • 如果最初的数字08),然后八进制值(基地。

% ld%李

64位的值,以10为底的8或16

整数,无符号

% u

以10为底的

%啊

基数8(八进制)

% x

基地16(十六进制)

陆%,%瞧,% lx

64位的值,以10为底的8或16

浮点数

% f

浮点字段可以包含下列(不区分大小写):,,,或

% e

% g

字符字段

此表列出了可用的转换说明符字符输入。

字符字段类型 转换说明符 描述

特征向量或字符串标量

% s

阅读所有字符包括空格。

% c

阅读任何单个字符,包括空格。
一次读入多个字符,指定字段宽度。

模式匹配

% […]

括号中只读人物第一nonmatching字符或空格。

例子:%(亩)读取“夏天”作为“夏”

如果formatSpec包含数字和字符的组合说明符,然后fscanf将每个字符转换为它的等效数值。即使发生这种转换格式明确跳过所有数值(例如,formatSpec% * d %年代”)。

可选的运营商

  • 字段和字符,不容忽视

    fscanf读取所有数值和人物在序列文件,除非你告诉它忽略一个特定的领域或领域的一部分。跳过字段插入星号(*百分号(后)% gydF4y2Ba)。例如,跳过整数,指定% * d

  • 字段宽度

    指定的最大数量的数字或文本字符阅读一次,后插入一个数量百分比的性格。例如,% 10 c一次读取多达10个字符,包括空格。% 4 f每次读到4位数,包括小数点。

  • 文字可忽略

    fscanf忽略了文本附加到指定formatSpec转换说明符。

    例子:水平% u读取“使”作为1

    例子:% uStep读取的2个步骤作为2

维输出的数组,一个,指定为、一个整数或一个双元素行向量。

形式的sizeA输入 描述
读到文件的末尾。
对于数值型数据,输出,一个是一个列向量。
文本数据,一个是一个特征向量。
n 读最多n数值或字符字段。
对于数值型数据,输出,一个是一个列向量。
文本数据,一个,是一个特征向量。
(m, n] 读最多*n数值或字符字段。n可以,但不能。输出,一个,是——- - - - - -n,填写列顺序。

输出参数

全部折叠

文件数据,返回为一个列向量,矩阵,向量或字符数组。的类和大小一个依赖于formatSpec输入:

  • 如果formatSpec只包含数字说明符一个是数字。如果你指定sizeA参数,然后一个是一个指定大小的矩阵。否则,一个是一个列向量。如果输入包含少于sizeA值,然后fscanf一个0。

    • 如果formatSpec只包含64位带符号整数说明符,然后一个的类int64

    • 如果formatSpec只包含64位无符号整数说明符,然后一个的类uint64

    • 否则,一个的类

  • 如果formatSpec只包含字符或文字说明符(% c% s),然后一个是一个字符数组。如果您指定sizeA输入包含更少的字符,然后fscanf一个char (0)

  • 如果formatSpec包含数字和字符的组合说明符,然后一个是数字,类,fscanf将每个文本字符转换为它的等效数值。即使发生formatSpec显式跳过所有数值字段(例如,formatSpec% * d %年代”)。

  • 如果MATLAB®不能匹配的文件数据formatSpec,然后一个可以是数字或字符数组。的类一个取决于价值观fscanf读取之前停止处理。

读取的字符数,作为标量值返回。

提示

  • 格式说明符的阅读功能sscanffscanf不同的格式写功能sprintf。不支持一个精密领域阅读功能。万博1manbetx宽度字段指定一个最小的写作但最多阅读。

算法

MATLAB读取字符使用与文件相关的编码方案。你打开文件时指定的编码使用打开外部文件函数。

之前介绍过的R2006a

这个主题有帮助吗?