matlab中的匹配函式

2022-04-28 23:48:15 字數 2236 閱讀 9662

在matlab中,這幾個函式區分如下: 

(以下預設s1和s2是字串,同樣也適用於cell細胞型別資料,也就是迴圈對cell中每 

個元素分別判斷即可。) 

findstr(s1,s2):尋找是否有s1和s2之間的匹配,真返回1,假返回0,雙向; 

例:          s = 'how much wood would a woodchuck chuck?'; 

findstr(s,'a')    returns  21 

findstr('a',s)    returns  21 

findstr(s,'wood') returns  [10 23] 

findstr(s,'wood') returns   

findstr(s,' ')    returns  [4 9 14 20 22 32] 

strfind(s1,s2):尋找s2是否匹配s1,和上面的唯一區別就是這個是單向的。請注意唯一 

的區別在例子中紅字部分。 

例:       s = 'how much wood would a woodchuck chuck?'; 

strfind(s,'a')    returns  21 

strfind('a',s)    returns   

strfind(s,'wood') returns  [10 23] 

strfind(s,'wood') returns   

strfind(s,' ')    returns  [4 9 14 20 22 32] 

strcmp(s1,s2):尋找s1和s2是否完全匹配,s1和s2沒有順序的區分。 

例:       s= 'wooden'; 

strcmp(s,'wood')    returns 0 

strcmp(s,'wooden')    returns 1 

strcmp('wooden',s)    returns 1 

strcnmp(s1,s2,n):尋找s1和s2的前n個字元是否完全匹配,s1和s2沒有順序的區分。 

例:       s= 'wooden'; 

strncmp(s,'wood',4)    returns 1 

strncmp(s,'wood',5)    returns 0 

strncmp(s,'wooden',4)    returns 1 

strncmp('wooden',s,4)    returns 1 

strcmpi(s1,s2)與strncmpi(s1,s2,n)與上面分別對應的strcmp(s1,s2)與strncmp(s1,s 

2,n)完全相同,唯一的區分是匹配時不區分大小寫。 

最重要的: 

strmatch(s1,s2):尋找s1是否匹配s2的開頭部分,返回值是s1在s2中匹配的位置。 

strmatch(s1,s2,'exact'):尋找s1是否和s2完全匹配,返回值是s1在s2中匹配的位置。 

例:        s2=strvcat('max','minimax','maximum') 

s2 = 

max     

minimax 

maximum 

strmatch('max',s2) returns [1; 3] 表明1和3列匹配 

strmatch('max',s2,'exact') returns [1] 表明1列完全匹配 

strmatch的乙個好處是可以返回匹配的位置,而其餘幾個函式都只能返回判斷值。 

但是,strmatch在2011b之後的版本將被刪除不再使用。根據個人推測的原因和網上求證 

如下: 

1、strmatch的功能完全可以由以上的幾個函式實現。 

2、strmatch是乙個m檔案,而其餘幾個函式都是內建的函式,因此在執行時,可以** 

到strcmp的效率是遠遠高於strmatch的。 

3、另乙個因素,strmatch要先建立乙個矩陣來儲存返回的真值的位置,且在迴圈的過程 

中這個矩陣在不斷變化;而strcmp僅僅返回真假。因此推測效率更高。 

以上僅為推測,我沒有做過測試。因此對於小程式來說,這點時間效率的對比實在不會 

太重要。總之,還是選擇自己適合的函式就可以了。 

zz -- 

雖然掌握著生命魔紋,不過,那並不意味著就能繪製所有等級的魔紋。就像是乙個畫家 

,剛開始學畫就學的是比別人更高明的繪畫技巧,但也同樣需要時間練習成長,而不是 

一出手就能畫出名畫來。 

MATLAB中的length函式

在matlab中 size 獲取陣列的行數和列數 length 陣列長度 即行數或列數中的較大值 numel 元素總數。s size a 當只有乙個輸出引數時,返回乙個行向量,該行向量的第乙個元素時陣列的行數,第二個元素是陣列的列數。r,c size a 當有兩個輸出引數時,size函式將陣列的行數...

Matlab中的rectangle函式

matlab中的rectangle函式 樓外樓 rectangle函式功能 建立二維矩形物件。rectangle position x,y,w,h 從點 x,y 開始繪製乙個寬w高h的矩形,對座標軸資料單元指定值。注意,按指定的比例顯示矩形,需要設定座標軸資料寬高比來使得x和y軸有等長的單位。你可以...

matlab中的ezsurf函式

乙個好用的用來繪製3d有色表面圖的函式 ezsurf f ezsurf f,domain ezsurf x,y,z ezsurf x,y,z,smin,smax,tmin,tmax or ezsurf x,y,z,min,max ezsurf n ezsurf circ ezsurf axes ha...