matlab正则表达式(附数+代码)
目录标题
- 提取字符串中的信息
- 元字符
- MATLAB正则表达式函数
- 代码链接
- 补充的例子
- 例子一(matlab把stata格式写为latex格式)
- 问题描述
- 代码实现
提取字符串中的信息
提取字符串中的信息步骤流程图如下:
以下为一个例子, 取自国赛2021B表一的部分数据:
我们需要从114个字符串的值提取五个指标:
(1)Co/SiO2的质量
(2)Co负载量,"1wt% O2"意味着钴Co与SiO2的重量之比为1:100
(3)HAP的质量
(4)乙醇浓度,这里的浓度表述有待商榷,应为乙醇的注入速率
(5)Co/SiO2和HAP装料比
我们需要确定元字符来提取字符串中的信息。
元字符
元字符 | 含义 |
---|---|
\d | 代表数字字符 |
\w | 代表单词字符,即所有的英文字符,数字,加上下划线 |
\s | 代表空白符 |
\D | 代表非数字字符 |
\W | 代表单词字符 |
\S | 代表非空白符 |
.* | 代表任意字符 |
^ | 匹配行首 |
$ | 匹配行尾 |
因为表单中数字偏多,我们先考虑元字符\d ,搜索字符串如图:
”\d+"中的加号表示出现一次以上的字符,共能提取六个字符,我们需要提取第1、2、4的数字,代码如下:
pattern = '(\d+)';matches = regexp(ss, pattern, 'tokens'); dd(ii,1)=str2double(matches{1});dd(ii,2)=str2double(matches{2});dd(ii,3)=str2double(matches{4});
乙醇浓度我们用元字符.* ,取两数字中有符号"."的部分,也可以取乙醇浓度和ml/min中所有字符都可以得到乙醇值,代码部分如下:
正则化形式:
代码:
pattern = '(\d\.\d+)'; matches = regexp(ss, pattern, 'tokens');dd(ii,4) = str2double(matches{1});
和:
正则化形式:
代码:
pattern = '乙醇浓度(.+)ml/min'; % .可以匹配任何单个字符,包括空白matches = regexp(ss, pattern, 'tokens');dd(ii,4) = str2double(matches{1});
MATLAB正则表达式函数
什么是正则表达式?
正则表达式是一串用于定义某种模式的字符。在有些情况下(例如,在解析程序输入或处理文本块时),通常会使用正则表达式在文本中搜索与该模式匹配的一组单词。
有四个 MATLAB函数支持使用正则表达式搜索和替换字符。前三个函数在接受的输入值和返回的输出值方面类似。
函数 | 说明 |
---|---|
regexp | 用于对字符串进行查找,大小写敏感。 |
regexpi | 匹配正则表达式并忽略大小写。 |
regexprep | 用于对字符串进行查找并替换。 |
regexptranslate | 将文本转换为正则表达式。 |
我们使用函数regexp,匹配正则表达式。
调用前三个函数中的任何一个函数时,请在前两个输入参数中传递要解析 的文本以及正则表达式。调用 regexprep 时,还需再传递一个额外的输入,该输入是一个表达式,用于指定替代的模式。
完整代码如下:
clc,clear
load A;
chj=A;
n = length(chj);
dd = nan(n,5);
for ii = 1:nss = chj(ii);
% 正则表达式可代替
% 200mg 1wt%Co/SiO2- 200mg HAP-乙醇浓度1.68ml/minpattern = '(\d+)';matches = regexp(ss, pattern, 'tokens'); dd(ii,1)=str2double(matches{1});dd(ii,2)=str2double(matches{2});dd(ii,3)=str2double(matches{4});
% pattern = '乙醇浓度(.+)ml/min'; % .可以匹配任何单个字符,包括空白
% matches = regexp(ss, pattern, 'tokens');
% dd(ii,4) = str2double(matches{1});pattern = '(\d\.\d+)'; % .可以匹配任何单个字符,包括空白
% \d\.\d+matches = regexp(ss, pattern, 'tokens');dd(ii,4) = str2double(matches{1});dd(ii,5) =dd(ii,1)/dd(ii,3);
end
原字符串为:
其中提取的数据如图:
代码链接
https://pan.baidu.com/s/1tpDafzTxkYx3Qe2RUy48Ow
提取码:6z1p
结束——————————————————————
(后面为用到正则化的例子供大家参考)
补充的例子
例子一(matlab把stata格式写为latex格式)
问题描述
我们需要一个代码把stata复制的数据修改为latex的格式,避免一个个粘贴麻烦的情况。
把:
变为:(负号还未加)
之后粘贴如txt文件去除""
即可。
代码实现
clc,clear
opts = spreadsheetImportOptions("NumVariables", 1);
opts.Sheet = "Sheet6";
opts.DataRange = "A1:A7";
opts.VariableNames = "VarName1";
opts.VariableTypes = "string";
opts = setvaropts(opts, "VarName1", "WhitespaceRule", "preserve");
opts = setvaropts(opts, "VarName1", "EmptyFieldRule", "auto");
A = readmatrix("正则化.xlsx", opts, "UseExcel", false);
clear optsc=zeros(7,5);for i=1:7for j=1:5
a=A(i);
ss=a;pattern = '(\d+.\d+)'; matches = regexp(ss, pattern, 'tokens');k=length(matches);if k<5if j==5b=0;elseb = str2double(matches{j});endelseb = str2double(matches{j});end
c(i,j)=b;endend
d=c;
ii=d>=1000
d(ii) = c(ii)/(1.0e+07);d(:,[3 4 5])=d(:,[5 3 4]);%交换两列的位置d = round(d,4);
name=["花菜类" "花叶类" "辣椒类" "茄类" "食用菌" "水生根茎类" "常数"]';
e="&"+name+"&"+d(:,1)+"&"+d(:,2)+"&"+d(:,3)+"&"+d(:,4)+"&"+d(:,5)+"\\";
matlab正则表达式(附数+代码)相关推荐
- 自适应滤波器设计及matlab实现,自适应滤波器设计及Matlab实现附程序代码
自适应滤波器设计及Matlab实现附程序代码 维纳自适应滤波器设计及 Matlab 实现摘 要本文从随机噪声的特性出发,分析了传统滤波和自适应滤波基本工作原理和性能,以及滤波技术的现状和发展前景.然后 ...
- matlab滤波器 代码,自适应滤波器设计及Matlab实现附程序代码整理版.doc
自适应滤波器设计及Matlab实现附程序代码整理版.doc 维纳自适应?滤波器设计?及Matl?ab实现 摘 要 本文从随机?噪声的特性?出发,分析了传统?滤波和自适?应滤波基本?工作原理和?性能,以 ...
- 北京房租大涨?6个维度,数万条数据帮你揭穿(附详情代码)
作者|丁彦军 来源|恋习Python 昨天还幻想海边别墅的年轻人,今天可能开始对房租绝望了. 8月初,有网友在"水木论坛"发帖控诉长租公寓加价抢房引起关注.据说,一名业主打算出租自 ...
- 基于蝗虫(蚱蜢)优化算法优化的支持向量机分类模型及其MATLAB实现-附代码
基于蝗虫(蚱蜢)优化算法GOA优化的支持向量机分类模型SVM及其MATLAB实现-附代码 文章目录 基于蝗虫(蚱蜢)优化算法GOA优化的支持向量机分类模型SVM及其MATLAB实现-附代码 1. 模型 ...
- 基于MATLAB的三维数据插值拟合与三次样条拟合算法(附完整代码)
目录 一. 三维插值 例题1 二. 高维度插值拟合 格式一 格式二 格式三 格式四 格式五 例题2 三. 单变量三次样条插值 例题3 例题4 四. 多变量三次样条插值 例题6 一. 三维插值 首先三维 ...
- 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码
基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 文章目录 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 1 GWO-SVM 模型 1.1 灰狼优化器GWO ...
- python 双目视觉_球体的双目视觉定位(matlab,附代码)
球体的双目视觉定位(matlab,附代码) 标签(空格分隔): 机器视觉 引言 双目视觉定位是我们的一个课程设计,最近刚做完,拿出来与大家分享一下,实验的目的是在拍摄的照片中识别球体,并求出该球体到相 ...
- 基于MATLAB的二维与三维插值拟合运算(附完整代码)
· 一. 一维插值 interp1函数在上个博客中(如下链接)已经更新了,此处再补充两个相关例题. 基于MATLAB的数据插值运算:Lagrange与Hermite算法(附完整代码)_唠嗑!的博客-C ...
- matlab中多元线性回归regress函数精确剖析(附实例代码)
matlab中多元线性回归regress函数精确剖析(附实例代码) 目录 前言 一.何为regress? 二.regress函数中的参数 三.实例分析 总结 前言 regress函数功能十分强大,它可 ...
- 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码
基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 文章目录 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 1 蝙蝠算法与BP神经网络分类模型 1.1 蝙 ...
最新文章
- 框架开发与编程模式编程思想的结合
- yii 使用 有赞sdk_有赞移动如何做到并行灰度的复杂场景?
- 同步异步单线程多线程初级理解
- P1081 开车旅行 倍增 洛谷
- cfile清空文件内容_体育老师学编程(第11天)python常用的文件读写操作
- [转]el-table表格翻页后仍记忆所选项
- PPT画得图转为矢量图eps
- 麻省理工学院计算机科学与工程博士,2020美国麻省理工大学计算机科学博士专排...
- 任意图像转素描:Python分分钟实现
- 怎么在服务器解压文件,云服务器怎么解压文件
- HttpServletResponse
- 淘宝商品详情APi接口(原数据APP、h5)
- 【copy】也说嵌入式系统架构设计(linux 平台)
- Oracle DBA面试突击题
- sequoia负载均衡
- 下载refseq序列
- 上海现有电视频道分配表
- 波动方程的行波解(二)| 半直线上的问题——延拓法 | 偏微分方程(十)
- python使用ddt_python数据驱动ddt的使用
- 深度学习中的单阶段小目标检测方法综述
热门文章
- 输入一些整数,编程计算并输出其中所有正数的和,输入负数或零时表示输入数据结束。输出正数的和以及正数的项目。
- 西电数据挖掘实验三 关联规则挖掘 投票记录
- Android之“观察者模式”解析及实际应用:应用宝软件下载中 进度条同步更新
- input 警告[DOM] Input elements should have autocomplete attributes (suggested: new-password)
- 基于高分遥感影像的车道级高精地图生成模型跑通了
- iphone如何查看dns延迟_iphone – 如何在iOS上执行DNS查询
- CKAD考试实操指南(四)—— 优雅设计:掌握Pod设计技巧
- UE4 C++中字符串的处理
- 中国梅森砂市场规模状况与竞争策略分析报告2022-2028年
- JSP+MySQL基于ssm的主题酒店管理系统