matlab 数组中查找字符串长度,Matlab 之 字符串数组查找
Matlab的优势在于向量操作,字符串操作往往费时费力,但是如果能充分利用Matlab自带的一些函数,也可以取得不错的效果。下面就介绍一下字符串数组查找的小技巧。
字符串数组我通常会选择应用cell格式保存,下面的分析也是建立在这个前提下。
【1】 strcmp() 函数
strcmp() 函数的基本功能是比较两个字符串是否相等,其基本用法是:
TF = strcmp(s1,s2);
但是,如果我们要查找字符串数组中等于某字符串的索引时,该如果操作?strcmp() 函数也提供了这个功能,用法相同:
TF = strcmp(s1,s2);
其中,s1是字符串数组,s2是字符串,返回值为逻辑类型,大小与字符串数组s1相同;
【2】 strfind() 函数
strcmp() 函数比较的是两个字符串是否相等。但是如果想查找字符串数组中包含某字符串的记录时,我们就可以选择strfind() 函数。
k = strfind(str,pattern);
输出结果k表示pattern在str中出现的位置,若不出现,则返回[]。比如:
S = ‘Find the starting indices of the pattern string’;
k = strfind(S, ‘in’)
k =
上面是strfind() 函数的基本功能,但是如果查找字符串数组中包含某字符串的索引时,strfind() 函数也可以大显身手,返回和字符串数组相同大小的cell类型数据,每个cell为字符串出现位置,向量类型,比如:
cstr = {‘How much wood would a woodchuck’; ‘if a woodchuck could chuck wood?’};
idx = strfind(cstr, ‘wood’)
idx =
[* double]
[* double]
Idx{:,:}
ans =
ans =
【3】 一个问题:有一个字符串数组cstr1,要找到包含字符串str2的索引,该如果操作?
一个直接的答案是:
idx = strfind(cstr1,str2);
finger(length(idx),) = ==;
for i = :length(idx)
if ~isempty(idx(i))
finger(i) = ==;
end
end
思路是正确的,但是代码量有点大,需要7行,而且速度较慢。其实要实现这个功能,1行代码足矣。如下:
finger = ~cellfun(@isempty, strfind(cstr1,str2));
上面的代码还有另外一种写法,
finger = cellfun(@(x) ~isempty(strfind(x,str2)), cstr1);
三种方法输出结果是一样的,但是第2种方法速度最快,第1种方法次之,第3种方法最慢。大家可以进行测试下。
.net字符串数组查找方式效率比较
下面是代码: static void Main(string[] args) { string[] arr = new string[] { "AAA", "BBBB&q ...
matlab中的字符串数组与函数调用
1, matlab中的字符串就是1维字符数组,即如: a = 'dddssd'; b = 'lsde'; c = [a, b]; 当然也可以: c= strcat(a, b); 2, matlab中的 ...
014 Longest Common Prefix 查找字符串数组中最长的公共前缀字符串
编写一个函数来查找字符串数组中最长的公共前缀字符串. 详见:https://leetcode.com/problems/longest-common-prefix/description/ 实现语言: ...
Matlab之字符串处理
Matlab处理字符串 1.取得部分字符串 我们有一个字符串 file='20131030_113109.TemporaryAlias.Poly5'; 简单操作举例: >> a=file( ...
MATLAB 的字符串分析
MATLAB的字符串分析. 字符串实际上是指1Xn 的字符数组. MATLAB软件具有强大的字符串处理功能,提供了很多的字符或字符串处理函数,包括字符串的创建.字符串的属性.比较.查找以及字符串的转换 ...
Javascript-常用字符串数组操作
字符串的操作在编写Js的过程中是不可避免的 因为它太多的API 还有相似的API让我们很头痛 为了避免以后遇到模拟两可的问题 还是做个笔记比较好 把常用的字符串操作记录下来成笔记 方便以后查找 No1 ...
JavaScript内置对象(字符串,数组,日期的处理)
Date 日期对象 日期对象可以储存任意一个日期,并且可以精确到毫秒数(1/1000 秒). 定义一个时间对象 : var Udate=new Date(); 注意:使用关键字new,Date()的首 ...
随机推荐
svn中cleanup作用
我们开发项目的时候,用版本控制软件svn提交项目时候难免会遇到cleanup,那么这个提示是怎么产生的呢?它有什么作用呢? 产生原因:SVN 本地更新时,由于一些操作中断更新,如磁盘空间不够,用户取消 ...
JavaScript使用自定义事件实现简单的模块化开发
WEB前端最常见驱动方式就是事件了, 所有交互等等都是通过事件,前端的常见事件有: UI事件: 焦点事件: 鼠标事件: 滚轮事件: 文本事件: 键盘事件: 变动事件: 现在网页上有一个输入框, 如果我 ...
mongo .update
db.classes.update({"count":{$gt:20}},{$set:{"name":"c4"}},false,false) ...
PERL 脚本
PERL: Practical Extraction and Report Language 参考文档 1.Perl 5 version 24.0 documentation
调用webservice,解析返回数据为xml格式的字符串,进行数据绑定
DataSet ds = new DataSet(); byte[] byteArray = System.Text.Encoding.Unicode.GetBytes("<?xml ...
if form1.showmodal:=mrok then 什么意思
if form1.showmodal:=mrok then 这句话什么意思? 最佳答案 这个问题说来话长,且听我慢慢道来... 首先,你仔细看一看,所有的命令按钮(不论是Button还是BitBtn) ...
如何判断手机收有几张SIM卡
//判断卡槽1中是不是有卡 boolean hasIccCard1 = MSimTelephonyManager.getDefault().hasIccCard(0); //判断卡槽2中是不是有卡 b ...
C指针(转)
第一章 指针的概念 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址. 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有 ...
LeetCode 392. Is Subsequence
Given a string s and a string t, check if s is subsequence of t. You may assume that there is only l ...
【转】安卓Fragment不完全介绍
转两篇博客: 1.http://blog.csdn.net/lmj623565791/article/details/37970961 2.http://blog.csdn.net/lmj623565 ...
matlab 数组中查找字符串长度,Matlab 之 字符串数组查找相关推荐
- 切割字符串长度php,C++_C语言中计算字符串长度与分割字符串的方法,C语言strlen()函数:返回字符串 - phpStudy...
C语言中计算字符串长度与分割字符串的方法 C语言strlen()函数:返回字符串的长度头文件: #include strlen()函数用来计算字符串的长度,其原型为: unsigned int str ...
- 2108. 找出数组中的第一个回文字符串
给你一个字符串数组 words ,找出并返回数组中的 第一个回文字符串 .如果不存在满足要求的字符串,返回一个 空字符串 "" . 回文字符串 的定义为:如果一个字符串正着读和反着 ...
- LeetCode 2108. 找出数组中的第一个回文字符串
文章目录 1. 题目 2. 解题 1. 题目 给你一个字符串数组 words ,找出并返回数组中的 第一个回文字符串 .如果不存在满足要求的字符串,返回一个 空字符串 "" . 回 ...
- Java黑皮书课后题第8章:*8.27(列排序)用下面的方法实现一个二维数组中的列排序。返回新数组,且原数组保持不变。编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵
*8.27(列排序)用下面的方法实现一个二维数组中的列排序.返回新数组,且原数组保持不变.编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵 题目 题目描述与运行示例 破 ...
- Java黑皮书课后题第8章:*8.26(行排序)用下面的方法实现一个二维数组中的行排序。返回新数组,且原数组保持不变。编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵
*8.26(行排序)用下面的方法实现一个二维数组中的行排序.返回新数组,且原数组保持不变.编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵 题目 题目描述与运行示例 破 ...
- ASP如何计算中英文混合字符串长度和截取字符串
用ASP做网站的时候经常会碰到要截取字符串的情况.ASP中的Len函数不管是中文字符,还是英文字符,统统按一个单位来计算,由于一个中文字符的宽度是一个英文字符宽度的两倍,在中英文混合的情况下字符串实际 ...
- php 去除二维数组中的包含某一个值的数组
今天写程序,遇到一个的问题. 我想把一个二维数组中的包含某一个值的数组去掉,并重新生成索引下标 例如: $all_zone=array(array("id"=>"R ...
- 在线字符串长度计算,字符串统计工具
在线字符串长度计算,字符串统计工具 在线字符串长度计算,字符串统计工具 本工具支持统计给定的字符串的总数,中文总数,英文总数,符号总数和数字总数等数据. 客户端实时计算,数据实时更新. https:/ ...
- JavaScript求数组中每个元素的个数,如数组str = [1,2,3,2,4,1,2]中元素2的个数为2。要求:使用对象知识来实现,输出结果为对象,对象包含数组元素和个数值。
求数组中每个元素的个数,如数组str = [1,2,3,2,4,1,2]中元素2的个数为2. 要求:使用对象知识来实现,输出结果为对象,对象包含数组元素和个数值. <script>var ...
最新文章
- 前端入门(雨滴特效,css)
- r指引到文件夹_R语言中进行文件夹及文件夹内文件操作范例
- Pytorch学习-torch.max()和min()深度解析
- 浙江省第6届程序设计竞赛结题报告汇总 zoj3202-3212
- Visual Studio Code的用户设置相关
- 面试-线程池的成长之路
- NOIP2001-普及组复赛-第2题-最大公约数和最小公倍数问题
- Spring Boot 初步小结
- 时间序列-LSTM长期预测
- 2021-04-03
- 简单详细的OD破解教程(转)
- 超星高级语言程序设计实验作业 (实验02 分支与循环程序设计)(二)
- 标准差 php,PHP 计算Cpk以及标准差
- Kindle 文档生成工具
- 教你把mov格式的视频转换mp4
- idea中安装maven3.6.1
- TCP与UDP协议初步学习——网络环境中分布式进程通信的基本概念
- python获取鼠标选取的内容_Python三维可视化:鼠标选取交互操作
- 人工智能导论(2)——启发式算法(八数码问题)
- Android-传感器开发-方向判断
热门文章
- VSCode中安装live server插件时出现Open a folder or workspace... (File -> Open Folder)错误
- 热点综述 | 空间多组学技术在肿瘤免疫微环境研究中的应用
- 网易游戏游戏开发工程师笔试试题
- 6论文降重小技巧(建议收藏)
- Caffe编译踩坑(一):/usr/include/boost/system/error_code.hpp:233:21: error: looser throw specifier
- 硅云账号注册过程与步骤详细图文教程
- 英特尔推出世界最大 FPGA 芯片;任正非表示华为尚未直接和美国公司商谈5G技术授权;OpenTitan开源……...
- 带按钮的图片横幅广告_显示带有文字的横幅记住使用cookie的选择
- 电力英语计算机教材,实用科技英语(21世纪高等教育计算机规划教材)
- 第六届蓝桥杯JavaA组省赛真题