在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...