MATLAB中sscanf函数用法

目录

语法

说明

示例

将字符向量转换为数值

转换文本和调整输出数组大小

统计在文本中找到的元素数目

显示错误消息

返回最后一个扫描位置

匹配指定的字符


        sscanf函数的功能是从字符串读取格式化数据。

语法

A = sscanf(str,formatSpec)
A = sscanf(str,formatSpec,sizeA)
[A,n] = sscanf(___)
[A,n,errmsg] = sscanf(___)
[A,n,errmsg,nextindex] = sscanf(___)

说明

        A = sscanf(str,formatSpec) 从 str 读取数据,根据 formatSpec 指定的格式对其进行转换,并将结果返回到数组中。str 是字符数组或字符串标量。sscanf 函数重复将 formatSpec 应用于 str 中的字符序列,直到它到达 str 的末尾或无法将 formatSpec 与一个字符序列匹配。如果 str 是一个包含多行的字符数组,sscanf 以列顺序读取字符。

        A = sscanf(str,formatSpec,sizeA) 将输出数组的大小设置为 sizeA,然后将数据从 str 读入输出数组。sizeA 必须是正整数或具有 [m n] 形式,其中 m 和 n 是正整数。

        [A,n] = sscanf(___) 还返回 sscanf 成功读入 A 的元素数。

        [A,n,errmsg] = sscanf(___) 还会在 sscanf 无法将所有数据读入 A 时返回包含错误消息的字符向量。如果 sscanf 成功,则 errmsg 是一个空字符向量。

        [A,n,errmsg,nextindex] = sscanf(___) 还返回 str 中紧跟在由 sscanf 扫描的最后一个字符之后的位置的索引。

示例

将字符向量转换为数值

        创建一个表示由空白字符分隔的多个数值的字符向量。将字符向量转换为数值的列向量。sscanf 将空白字符视为数值之间的分隔符。

chr = '2.7183  3.1416  0.0073'
chr = 
'2.7183  3.1416  0.0073'
A = sscanf(chr,'%f')
A = 3×12.71833.14160.0073

转换文本和调整输出数组大小

        创建表示多个数值的字符串,并使用 sscanf 转换它。指定输出数组的大小。

str = "2.7183  3.1416  0.0073"
str = 
"2.7183  3.1416  0.0073"
A = sscanf(str,'%f',[1 3])
A = 1×32.7183    3.1416    0.0073

        将 str 转换为 2×2 矩阵。由于 str 仅代表三个数值,因此 sscanf 会用足够多的零填充 A 以填满矩阵。

A = sscanf(str,'%f',[2 2])
A = 2×22.7183    0.00733.1416         0

统计在文本中找到的元素数目

        创建一个字符串,其中包含由空白字符分隔的数值。统计 sscanf 在将字符串转换为数值时放入输出数组的元素数目。

str = "78 72 64 66 49"
str = 
"78 72 64 66 49"

        统计输出数组 A 中的元素数目。使用 %d 运算符转换字符串中的数值。%d 将匹配用空白分隔的整数。要返回 A 中的元素数,请指定第二个输出参数。

[A,n] = sscanf(str,'%d')
A = 5×17872646649n = 5

显示错误消息

        创建一个字符串,并从中读取数据。如果 sscanf 不能转换所有输入字符串,将显示错误消息。

str = "3.14159 are the first 6 digits of pi"
str = 
"3.14159 are the first 6 digits of pi"

        转换 str 中的数值。由于 str 还包含 %f 不匹配的字符,因此 sscanf 返回错误消息。sscanf 一旦遇到单词 'are' 就会停止处理,因为它无法转换为数值。

[A,n,errmsg] = sscanf(str,'%f')
A = 3.1416
n = 1
errmsg = 
'Matching failure in format.'

返回最后一个扫描位置

        创建一个字符向量,并从中读取数据。当 sscanf 不能转换所有输入时,返回紧跟在 sscanf 停止位置之后的索引。使用此索引显示未扫描的输入。

chr = '3.14159 are the first 6 digits of pi'
chr = 
'3.14159 are the first 6 digits of pi'

        转换 chr 中的数据。返回索引。

[A,~,~,nextindex] = sscanf(chr,'%f')
A = 3.1416
nextindex = 9

        显示 chr 中 sscanf 未扫描的字符。

chr(nextindex:end)
ans = 
'are the first 6 digits of pi'

匹配指定的字符

        创建包含多个温度的字符串,这些温度由度符号和字母 F 指示。将温度转换为数值数组。

        要插入度符号 (char(176)),请使用 insertBefore 函数。

T = "78F 72F 64F 66F 49F";
degreeSymbol = char(176);
T = insertBefore(T,'F',degreeSymbol)
T = 
"78°F 72°F 64°F 66°F 49°F"

        以数值数组形式返回温度。

A = sscanf(T,strcat("%d",degreeSymbol,"F"))
A = 5×17872646649

提示

  • 读取函数 sscanf 和 fscanf 的格式设定符不同于写入函数 sprintf 和 fprintf 的格式。读取函数不支持精度字段。宽度字段在写入函数中指定最小值,但在读取函数中指定最大值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/55193.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

selenium的IDE插件进行录制和回放并导出为python/java脚本(10)

Selenium IDE:Selenium Suite下的开源Web自动化测试工具,是Firefox或者chrome的一个插件,具有记录和回放功能,无需编程即可创建测试用例,并且可以将用例直接导出为可用的python/java等编程语言的脚本。 我们以chrome浏…

Android 自适应

一开始项目使用的是第三方框架 GitHub - JessYanCoding/AndroidAutoSize: 🔥 A low-cost Android screen adaptation solution (今日头条屏幕适配方案终极版,一个极低成本的 Android 屏幕适配方案). 但是会偶现,断电重启第一次,…

Flutter-发现局域网中的设备

前言 现在有一个需求:要能够获取到局域网中的遮阳帘设备。通过搜索发现flutter_mdns_plugin可以满足这个需求 Pub:flutter_mdns_plugin | Flutter package GitHub:https://github.com/terrabythia/flutter_mdns_plugin MDNS服务类型 要根据…

Vue3嵌套导航相对路径问题

有如下的页面设计,页面上方第一次导航,两个菜单,首页和新闻 点击新闻,内容里面嵌套一个左侧和右侧,左侧有4条新闻,点击某一条新闻,右侧显示详情 代码如下: ​ File Path: d:\hello\…

自感式压力传感器结构设计

自感式压力传感器的结构如图2-35 和图 2-36所示,分为变隙式、变面积式和螺管式三种,每种均由线网、铁心和衔铁三部分组成。 图2-35 自感式压力传感器的结构 1-线圈 2-铁心 3-衔铁 图2-36 螺管式 1-线图 2-铁心 3一衔铁 自感式压力传感器按磁路变化可…

QT的核心机制 对话框资源

案例 1、键盘按下w,s,a,d键分别为标签向上,下,左,右移动 鼠标按下获取本地坐标,全局坐标 鼠标双击获取本地坐标,全局坐标 鼠标移动获取本地坐标,全局坐标 让鼠标跟踪…

Midjourney零基础学习

Midjourney学习笔记TOP04 Midjourney的各种参数设置 Midjourney的用户操作界面没有醒目的工具栏、属性栏,所有的操作都是通过调用各种指令和参数进行的。 【MJ Version】 Midjourney在2023年3月份就已经更新到了V5版本,V5版本除了画质有所提升外&#…

interwirelessac9560感叹号,电脑无法连接wifi,无法搜索到wifi

interwirelessac9560感叹号 电脑无法连接wifi,无法搜索到wifi 原因 这可能是wifl模块出现了问题。 解决方案 1、winx 打开,选择【设备管理器】 2、选择网络适配器 右键打开wireless-AC,选择【卸载设备】。 3、关机2分钟后&#xff0c…

SpringBoot智慧外贸平台

专业团队,咨询就送开题报告,欢迎大家私信留言,联系方式在文章底部 摘 要 网络的广泛应用给生活带来了十分的便利。所以把智慧外贸管理与现在网络相结合,利用java技术建设智慧外贸平台,实现智慧外贸的信息化。则对于进…

数据结构-5.9.树的存储结构

一.树的逻辑结构: 二.双亲表示法(顺序存储): 1.树中除了根结点外每一颗树中的任意一个结点都只有一个父结点(双亲结点); 2.结点包括结点数据和指针; 3.上述图片中右边的顺序存储解析:比如A结点左边的0,就…

ASML业绩暴雷,股价一度跌超16%

KlipC报道:当地时间10月15日,阿斯麦(ASML)原定于周三公布的三季度业绩报告由于技术原因被短暂地提前公布,业绩报告显示,阿斯麦第三季度总净销售额75亿欧元,毛利率50.8%,净利润21亿欧…

社招高频面试题

1.单例模式 面试突击50:单例模式有几种写法? 2.Mybatis缓存机制 MyBatis的一、二级缓存查询关系 一级缓存是SqlSession级别,不能跨SqlSession共享,默认开启。 二级缓存是基于mapper namespace级别的,可以跨SqlSessi…

PetaLinux工程的常用命令——petalinux-create

petalinux-create&#xff1a;此命令创建新的PetaLinux项目或组件。 注&#xff1a;有些命令我没用过&#xff0c;瞎翻译有可能会翻译错了&#xff0c;像是和fpgamanager相关的部分。 用法: petalinux-create [options] <-t|--type <TYPE> <-n|--name <COMPONEN…

LeetCode:3039.进行操作使字符串为空(模拟 Java)

目录 3039.进行操作使字符串为空 题目描述&#xff1a; 实现代码与解析&#xff1a; 模拟 原理思路&#xff1a; 3039.进行操作使字符串为空 题目描述&#xff1a; 给你一个字符串 s 。 请你进行以下操作直到 s 为 空 &#xff1a; 每次操作 依次 遍历 a 到 z&#xff…

Mongodb 获取集合(collection)的统计信息

在MongoDB中&#xff0c;获取指定集合&#xff08;collection&#xff09;的统计信息可以通过执行collStats命令来实现。这个命令提供了关于集合的详细信息&#xff0c;包括&#xff1a; 集合的大小索引的大小和数量文档的数量存储空间的使用情况各种统计数据&#xff0c;如平…

[linux 驱动]gpio子系统详解与实战

目录 1 描述 1.1 文件节点操作 gpio 引脚 1.2 gpio 引脚计算 2 结构体 2.1 gpio_desc 2.2 gpio_device 2.3 gpio_chip 3 相关函数 3.1 goio 申请释放 3.1.1 gpio_request 3.1.2 gpio_free 3.2 gpio 输入输出设置 3.2.1 gpio_direction_input 3.2.2 gpio_direction…

filecoin filspark 检索

安装 boost 1、安装 YugabyteDB2、boostd-data 运行3、初始化 boostd4、运行 boostd5、运行 booster-http6、需要公网映射端口6.1 Libp2p 公网映射本地端口24001 发布矿工6.2 Graphql 公网映射本地端口8080 web界面6.3 IndexProvider.HttpPublisher 公网映射本地端口6700 http发…

微信小程序路由跳转的区别及其常见的使用场景

在微信小程序中&#xff0c;页面路由跳转的实现有几种常用方式&#xff0c;不同的跳转方式适用于不同的使用场景。下面是几种跳转方法的区别及其在实际项目中的应用场景。 1. wx.navigateTo 简介&#xff1a;保留当前页面并跳转到指定页面&#xff0c;最多保留10个页面的历史记…

Scala入门基础(10)高级函数

一.什么是高阶函数 二.map函数 三.foreach函数 四.filter函数 五.flatten函数 正文&#xff1a; 一.什么是高阶函数 高阶函数&#xff1a;是一个特殊的函数&#xff0c;特殊之处在于&#xff1a;它指使用其他函数作为参数或返回值 &#xff08;演示&#xff09; 二.map函…

Linux -- 初识动静态库

目录 为什么要有库&#xff1f; 静态库 什么是静态库&#xff1f; 特点 优点 缺点 动态库 什么是动态库&#xff1f; 优点 缺点 编译器会选择哪个库&#xff1f; 为什么要有库&#xff1f; 库的存在是为了提高软件开发的效率、促进代码复用以及简化维护工作。通过使用…