fscanf
从文本文件中读取数据
语法
一个= fscanf(文件标识,formatSpec)
一个= fscanf(文件标识,formatSpec sizeA)
[数]= fscanf (___)
描述
一个= fscanf (
从一个开放的文本文件中读取数据到列向量文件标识
,formatSpec
)一个
并解释文件中的值根据所指定的格式formatSpec
。的fscanf
功能申请在整个文件的格式和文件尾标志文件指针的位置。如果fscanf
不能匹配formatSpec
只需要读取数据,部分匹配和停止处理。
文本文件由文件标识符,表示文件标识
。使用打开外部文件
打开文件,指定字符编码,获得文件标识
价值。当你读完,关闭文件通过调用文件关闭(文件标识)
。
一个= fscanf (
文件数据读入一个数组,文件标识
,formatSpec
,sizeA
)一个
维度,sizeA
后,和立场文件指针读的最后一个值。fscanf
填充一个
列顺序。sizeA
必须是一个正整数或表单吗(mn)
,在那里米
和n
是正整数。
例子
将文件内容读入列向量
创建一个示例文本文件,其中包含浮点数。
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
,您必须使用打开外部文件
打开文件并获得文件标识
。
数据类型:双
formatSpec
- - - - - -数据字段的格式
特征向量|字符串标量
文件格式的数据字段,指定为一个特征向量或字符串标量的一个或多个转换说明符。当fscanf
读取一个文件,它试图匹配指定的数据格式formatSpec
。
数值字段
此表列出了可用的转换为数字输入说明符。fscanf
将值转换为十进制(基地10)表示。
数值字段类型 | 转换说明符 | 细节 |
---|---|---|
整数,签署了 |
|
以10为底的 |
|
文件中的值确定基础:
|
|
|
64位的值,以10为底的8或16 |
|
整数,无符号 |
|
以10为底的 |
|
基数8(八进制) |
|
|
基地16(十六进制) |
|
|
64位的值,以10为底的8或16 |
|
浮点数 |
|
浮点字段可以包含下列(不区分大小写): |
|
||
|
字符字段
此表列出了可用的转换说明符字符输入。
字符字段类型 | 转换说明符 | 描述 |
---|---|---|
特征向量或字符串标量 |
|
阅读所有字符包括空格。 |
|
阅读任何单个字符,包括空格。 |
|
模式匹配 |
|
括号中只读人物第一nonmatching字符或空格。 例子: |
如果formatSpec
包含数字和字符的组合说明符,然后fscanf
将每个字符转换为它的等效数值。即使发生这种转换格式明确跳过所有数值(例如,formatSpec
是% * d %年代”
)。
可选的运营商
字段和字符,不容忽视
fscanf
读取所有数值和人物在序列文件,除非你告诉它忽略一个特定的领域或领域的一部分。跳过字段插入星号(*
百分号(后)% gydF4y2Ba
)。例如,跳过整数,指定% * d
。字段宽度
指定的最大数量的数字或文本字符阅读一次,后插入一个数量百分比的性格。例如,
% 10 c
一次读取多达10个字符,包括空格。% 4 f
每次读到4位数,包括小数点。文字可忽略
fscanf
忽略了文本附加到指定formatSpec
转换说明符。例子:
水平% u
读取“使”
作为1
。例子:
% uStep
读取的2个步骤
作为2
。
sizeA
- - - - - -输出数组的维度
正
(默认)|整数|双元素行向量
维输出的数组,一个
,指定为正
、一个整数或一个双元素行向量。
形式的sizeA 输入 |
描述 |
---|---|
正 |
读到文件的末尾。 对于数值型数据,输出, 一个 是一个列向量。文本数据, 一个 是一个特征向量。 |
|
读最多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
读取之前停止处理。
数
——读取的字符数
标量
读取的字符数,作为标量值返回。
提示
格式说明符的阅读功能
sscanf
和fscanf
不同的格式写功能sprintf
和流
。不支持一个精密领域阅读功能。万博1manbetx宽度字段指定一个最小的写作但最多阅读。
算法
MATLAB读取字符使用与文件相关的编码方案。你打开文件时指定的编码使用打开外部文件
函数。
之前介绍过的R2006a
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。万博1manbetx
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。