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 之 字符串数组查找的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 让气球飞起来
- 下一篇: 瑶琳c语言,中国浙江省的瑶琳仙境属于