matlab中findstr,strfind,strcmp,strncmp區別與聯系


在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,S2,n)完全相同,唯一的區分是匹配時不區分大小寫。

參考文獻:

<http://www.mathworks.com/matlabcentral/newsreader/view_thread/257590>

<http://www.mathworks.com/matlabcentral/newsreader/view_thread/145799>

<http://www.mathworks.com/matlabcentral/newsreader/view_thread/145799>

<http://www.mathworks.de/matlabcentral/newsreader/view_thread/294626>

 

源文檔 <http://blog.163.com/6_mao/blog/static/63271315201110203738923/>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM