文档帮助中心
阅读从字符串格式化数据
A=sscanf(str,格式规范)
A=sscanf(str,formatSpec,sizeA)
[A,n]=sscanf的值(___)
[A,n,errmsg]=子散(___)
[A,n,errmsg,nextindex]=sscanf(___)
例子
一个=sscanf公司(str公司,格式规范)读取数据str公司,根据格式规范,并返回数组中的结果。str公司是字符数组或字符串标量。这个sscanf公司函数重复应用格式规范在字符序列str公司直到它到达str公司或不匹配格式规范到的字符序列。如果str公司是一个字符阵列具有多于一排,sscanf公司按列顺序读取字符。
一个=sscanf公司(str公司,格式规范)
一个
str公司
格式规范
sscanf公司
一个=sscanf公司(str公司,格式规范,大小)将输出数组的大小设置为大小然后从str公司进入输出数组。大小必须是正整数或具有[百万],其中米和n个是正整数。
一个=sscanf公司(str公司,格式规范,大小)
大小
[百万]
米
n个
[一个,n个]=sscanf公司(___)还返回元素的数量sscanf公司成功读入一个.
[一个,n个]=sscanf公司(___)
[一个,n个,错误消息]=sscanf公司(___)还返回包含错误消息的字符向量sscanf公司无法读取所有的数据到一个. 如果sscanf公司那么,成功了错误消息是一个空字符向量。
[一个,n个,错误消息]=sscanf公司(___)
错误消息
[一个,n个,错误消息,下一步]=sscanf公司(___)还返回位置的索引str公司紧接着扫描的最后一个字符sscanf公司.
[一个,n个,错误消息,下一步]=sscanf公司(___)
下一步
全部折叠
创建一个字符向量,表示由空白字符分隔的多个数字。将字符向量转换为数字的列向量。sscanf公司将空白字符视为数字之间的分隔符。
克朗='2.7183 3.1416 0.0073'
chr='2.7183 3.1416 0.0073'
A=sscanf(chr,'%f')
一个=3×1个2.7183 3.1416 0.0073
创建一个表示多个数字的字符串,并使用sscanf公司.指定输出数组的大小。
从R2017a开始,可以使用双引号创建字符串。
str公司=“2.7183 3.1416 0.0073”
str=“2.7183 3.1416 0.0073”
A=sscanf(str,'%f'[1 3])
一个=1×32.7183 3.1416 0.0073
转换str公司2乘2矩阵。因为str公司只代表三个数字,sscanf公司垫一个有足够的零来填充矩阵。
A=sscanf(str,'%f',[2 2])
一个=2×2个2.7183 0.0073 3.1416 0
创建包含由空白字符分隔的数字的字符串。数一数sscanf公司将字符串转换为数字时放入输出数组。
str公司=“78 72 64 66 49”
STR = “78 72 64 66 49”
计数输出数组中的元素一个. 使用%丁接线员。%丁匹配由空格分隔的整数。返回一个,指定第二个输出参数。
%丁
[A,n]=sscanf(街道,'%d')
一个=5×1个78 72 64 66 49
n=5个
创建一个字符串并从中读取数据。什么时候?sscanf公司无法转换所有输入字符串,显示错误消息。
str公司=“3.14159是pi的前6位数字”
str=“3.14159是π的前6位”
将数字转换为str公司. 自从str公司还包含%f型无法匹配,sscanf公司返回错误消息。sscanf公司一旦遇到单词就停止处理'是'因为它不能转换成数字。
%f型
'是'
[A,N,ERRMSG] = sscanf的(STR,'%f')
A=3.1416
n=1个
errmsg='格式匹配失败。'
创建一个字符向量并从中读取数据。什么时候?sscanf公司无法转换所有输入,请返回紧跟在sscanf公司停止。使用此索引显示未扫描的输入。
克朗='3.14159是圆周率的前6位'
chr='3.14159是π的前6位数字'
在中转换数据克朗. 返回索引。
克朗
[A,〜,〜,nextindex] = sscanf的(CHR,'%f')
下一个索引=9
显示中的字符克朗那个sscanf公司没有扫描。
克朗(下一个索引:结束)
ANS =“是pi的前6位数字”
创建一个包含多个温度的字符串,由度符号和字母表示F型. 将温度转换为数值数组。
F型
从R2017a开始,可以使用双引号创建字符串。插入度数符号(炭(176)),使用插入前功能。
炭(176)
插入前
T =“78F 72F 64F 66F 49F”;degreeSymbol =炭(176);T =的insertBefore(T,“F”,度符号)
T=“78华氏度72华氏度64华氏度66华氏度49华氏度”
将温度作为数字数组返回。
A=sscanf(T,strcat(“%d”,度符号,“F”))
输入要扫描的文本,指定为字符数组或字符串标量。如果str公司是一个字符数组,那么它可以有多行,并且sscanf公司按列顺序读取字符。
数据类型:烧焦|一串
烧焦
一串
输入字段的格式,使用格式运算符指定。格式规范可以是单引号中的字符向量,也可以是字符串标量。
数值字段
此表列出了用于将文本转换为数值输出的可用转换说明符。sscanf公司将值转换为十进制(以10为基数)表示形式。
数值字段类型
转换说明符
描述
整数,有符号
基数10。
%我
这些值决定了基础:
默认值为基数10。
如果初始数字是十倍或十倍,则值为基数16(十六进制)。
十倍
如果初始数字是0个,则值为基数8(八进制)。
0个
%ld或%李
%ld
%李
64位值,以10、8或16为基数。
整数,无符号
%u型
%o型
基8(八进制)。
%十
基数16(十六进制)。
%吕,%低,%长x
%吕
%低
%长x
浮点数
%f型,%e类,或%克
%e类
%克
浮点值。输入字段可以包含任何以下(不区分大小写)的:天道酬勤,-中导,南,或-南. 表示浮点数的输入字段可以包含前导+或-符号和指数表示法e类或E类. 转换说明符%f型,%e类,和%克所有输入字段的处理方式相同。
天道酬勤
-中导
南
-南
+
-
e类
E类
字符字段
此表列出了可用于转换文本的转换说明符,以便输出为字符数组。
字符字段类型
字符向量或字符串标量
%s公司
阅读课文直到sscanf公司遇到空白。
%c类
读取任何单个字符,包括空白。若要一次读取多个字符,请指定字段宽度。例如,%10℃每次读取10个字符。
%10℃
模式匹配
%[...]
只读括号中的字符,直到达到第一个非匹配字符或空格。
例:%[亩]读“夏天”作为'总和'.
%[亩]
“夏天”
'总和'
如果格式规范包含数字和字符说明符的组合,然后sscanf公司将每个字符转换为其等效的数值。
可选运算符
要忽略的字段和字符
sscanf公司按顺序读取所有数值和字符,除非告诉它忽略特定字段或字段的一部分。要跳过字段,请插入星号(*)百分比符号后(%克ydF4y2Ba). 例如,要跳过整数,请指定%*丁.
*
%克ydF4y2Ba
%*丁
字段宽度
若要指定一次读取的最大数字或文本字符数,请在百分比字符后插入一个数字。例如,%10℃一次最多读取10个字符,包括空白。%四层最多读取一次四位数,包括小数点。
%四层
要忽略的文本
sscanf公司忽略紧接转换说明符之前或之后的指定文本。
例:级别%u读'级别1'作为1个.
级别%u
'级别1'
1个
例:%乌斯特普读'2步'作为2个.
%乌斯特普
'2步'
2个
输出数组的维数,一个,指定为天道酬勤,正整数或两元素行向量。
形式大小输入
把输入读到最后。对于数字数据,一个是列向量。对于文本数据,一个是一个字符向量。
最多阅读n个数值或空格分隔字符字段。对于数字数据,一个是列向量。对于文本数据,一个是一个字符向量。
最多阅读男*女数值或字符字段。n个可以是天道酬勤,但是米不能。一个是米-通过-n个,填补列顺序。
男*女
数据类型:双重的|单一的|国际8|INT16|INT32|国际64|单位8|UINT16|uint32|uint64标准
双重的
单一的
国际8
INT16
INT32
国际64
单位8
UINT16
uint32
uint64标准
输出数据,作为列向量、矩阵或字符数组返回。类别和大小一个取决于格式规范以及由大小:
如果格式规范只包含数字说明符,然后一个数值列向量。如果还指定了大小那么,争论一个是指定大小的矩阵,如有必要,用零填充。如果输入包含少于大小值,然后是一个小于大小.相反,它是存储从输入扫描的值所需的大小。
如果格式规范只包含64位有符号整数说明符,然后一个是一流的国际64.
如果格式规范只包含64位无符号整数说明符,然后一个是一流的uint64标准.
否则,一个是一流的双重的.
如果格式规范仅包含%c类或%s公司那么,说明符一个是一个字符向量。如果您还指定大小,然后一个是字符数组,并根据需要填充空字符。(空字符是值为零的控制字符。)大小字符,然后是一个小于大小.相反,它是存储从输入信息扫描的文字所需要的尺寸。
如果格式规范包含数字和字符说明符的组合,然后一个是数值,属于类双重的,和sscanf公司将每个字符转换为其等效的数值。即使在格式规范显式跳过所有数值字段(例如,格式规范是“%*d%s”).
“%*d%s”
如果sscanf公司无法将所有输入都匹配到格式规范,然后一个可以是数字或字符数组。阶级一个取决于sscanf公司读它停止处理之前。
数据类型:双重的|国际64|uint64标准|烧焦
读取到输出数组中的元素数,返回为整数。
数据类型:双重的
错误消息,作为字符向量返回。如果str公司包含任何sscanf公司无法转换,则错误消息包含错误消息。如果sscanf公司成功转换所有数据,然后错误消息是一个空字符向量。
数据类型:烧焦
扫描的最后一个字符后的位置,返回为整数。
读取函数的格式说明符sscanf公司和fscanf公司与写入函数的格式不同把格式数据写成串和格式化输出. 读取函数不支持精度字段。宽度字段指定写入的最小值,但指定读金宝app取的最大值。
fscanf公司
把格式数据写成串
格式化输出
组成|格式化输出|fscanf公司|把格式数据写成串|文本扫描
组成
文本扫描
这个例子的修改版本的系统上存在。你要打开这个版本呢?
您单击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站以获取可用的翻译内容,并查看本地活动和优惠。根据您的位置,我们建议您选择:.
也可以从以下列表中选择网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家/地区网站未针对您所在位置的访问进行优化。
联系当地办事处