日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab字符和字符串,MATLAB字符和字符串

發布時間:2024/9/27 循环神经网络 82 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab字符和字符串,MATLAB字符和字符串 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

3.字符和字符串

在MATLAB中,幾個字符(Character)可以構一個字符串(String)。一個字符串被視為一個行向量,而字符串中的每一個字符(含空格符),則是以其ASCII的形式存放于此向量的每一個元素中,只是它的外顯形式仍然是可讀的字符。字符串類型在數據的可視化、應用程序的交互方面有著非常重要的作用。

3.1?創建字符串

1.一般字符串的創建

在MATLAB中,所有的字符串都用兩個單引號括起來,進行輸入賦值。如在MATLAB命令窗口中輸入:

>> a='matlab'

a =

matlab

字符串的每個字符(空格也是字符)都是相應矩陣的一個元素,上述變量a是1×6階的矩陣,可以用size(a)命令查得:

>> size(a)

ans =

1???? 6?? ????%? 1行6列

2.中文字符串的創建

中文也可以作為字符串的內容。但需要注意的是:在中文字符串的輸入過程中,兩邊的單引號必須是英文狀態的單引號。例如:

>> A='中文字符串輸入演示'

A =

中文字符串輸入演示

3.字符串的尋訪

在MATLAB中,字符串的尋訪可以通過其坐標來實現。在一個字符串中,MATLAB按照從左至右的順序對字符串中的字符依次編號(1,2,3,…)。進行字符串的尋訪,只需要像尋訪一般矩陣那樣即可。例如在前面創建了中文字符串A之后可以得到:

>> A(3:5)

ans =

字符串

4.字符串數組的創建

二維字符串(數組)的建立也非常簡單??梢韵駭抵禂到M的建立那樣直接輸入,也可以使用str2mat等函數建立。

【例3-6】? 多行串數組的直接輸入示例。

>> clear

>> S=['This string array '

'has multiple rows.']

S =

This string array

has multiple rows.

>> size(S)

ans =

2??? 18

需要注意的是:在直接輸入多行字符串數組的時候,每一行的字符個數必須相同。

【例3-7】? 使用函數str2mat創建多行串數組示例。

>> a=str2mat('這','字符','串數組','','由5 行組成')

a =

字符

串數組

由5 行組成

>> size(a)

ans =

5? ??6

在使用函數str2mat創建字符串數組的時候,不用擔心每一行的字符個數是否相等,函數在運行中會以字符最多的一行為準,而將其他行中的字符以空格補齊。

3.2 ?字符串比較

在MATLAB中,有多種對字符串進行比較的功能:

(1)比較兩個字符串或者子串是否相等;

(2)比較字符串中的單個字符是否相等;

(3)對字符串內的元素分類,判斷每個元素是否是字符或者空格。

用戶可以使用下面4個函數中的任意一個,來判斷兩個輸入字符串是否相等。

(1)strcmp:判斷兩個字符串是否相等。

(2)strncmp:判斷兩個字符串的前n個字符是否相等。

(3)strcmpi和strncmpi:這兩個函數的作用分別與strcmp和strncmp相同,只是在比較的過程中忽略了字母大小寫。

考慮有這兩個字符串:

>>str1 = 'hello';

>>str2 = 'help';

字符串str1和str2并不相等,所以使用strcmp函數來判斷的話,將會返回邏輯0(false)。例如:

>>C = strcmp(str1,str2)

C =

0

由于字符串str1和str2的前3個字符相等,所以用strncmp函數來比較前3個以內字符,將會返回邏輯1(true)。例如:

>>C = strncmp(str1, str2, 2)????? %? 比較前兩個字符

C =

1

下面介紹如何對大小寫不同的情況進行比較。

>> str3 = 'Hello';

>> D = strncmp(str1, str3,2)??????????????? % 對大小寫敏感

D =

0

>> F = strncmpi(str1, str3,2)?????????????? % 對大小寫不敏感

F =

1

用戶可以使用關系運算符進行字符串的比較,只要比較的數組具有相同的尺寸,或者其中一個是標量即可。例如,可以使用(==)運算符來判斷兩個字符串中有哪些字符相等。

>>A = 'fate';

>>B = 'cake';

>>A == B

ans =

0?? 1??0?? 1

所有的關系運算符都可以用來比較字符串相對應位置上的字符。

3.3字符串查找與替換

MATLAB提供了很多函數供用戶進行字符串的查找與替換。更加強大的是,MATLAB也支持在字符串的查找與替換中使用正則表達式。通過靈活使用正則表達式,可以對字符串進行各種形式的查找與替換。至于正則表達式的應用,用戶可以查詢幫助文檔中的Regular Expressions部分。

【例3-8】? 使用strrep函數進行字符串查找替換示例。

考慮有這樣一個標簽:

>> label = 'Sample 1, 03/28/15'

label =

Sample 1, 03/28/15

函數strrep用于實現一般的查找與替換功能。本例中使用strrep函數,將日期從'03/28'替換為'03/30'。命令如下:

>> newlabel = strrep(label, '28', '30')

newlabel =

Sample 1, 03/30/15

【例3-9】? 使用findstr函數進行字符串查找示例。

findstr函數用于返回某一子串在整個字符串中的開始位置。例如在字符串中查找字母a和oo出現的位置,可以使用如下命令:

>> strtemp='have a good time!'

strtemp =

have a good time!

>> position1= findstr('a', strtemp)

position1 =

2???? 6

>> position2 = findstr('oo', strtemp)

position2 =

9

從本例可以看出,字母a出現在第2和第6兩個位置,這說明findstr函數返回的位置信息包括所有出現的子串的位置。而字母'oo'字串只出現了一次,所以只返回一個位置信息。

strtok函數用于返回分隔字符第1次出現之前的字符。如果不自行指定分隔字符,默認的分隔字符則是泛空格符字符,因此用戶可以使用strtok函數將一個句子按照單詞分開。

【例3-10】? 使用strtok函數進行字符串查找示例。

>> t='I have walked out on a handful ofmovies in my life.';? %? 測試字符串

>> remain = t;

>> while true?????????????????????????????????????? ??????? %?使用while循環結構

[str, remain] = strtok(remain);????????????????? ??????? %? 以默認的空格為分隔符查找

if isempty(str),?break;? end????????????????????????? %? 循環跳出控制

disp(sprintf('%s', str))???????????????????????????? ?? %? 顯示結果

end

以下就是使用strtok函數進行多次查找得到的結果:

I

have

walked

out

on

a

handful

of

movies

in

my

life.

函數strmatch用于查找一個字符數組中以指定子串開始的字符串,該函數返回的是以指定子串開始的行編號。

【例3-11】??使用strmatch函數進行字符串查找示例。

>> maxstrings = strvcat('max', 'minimax','maximum') %? 測試字符串數組

maxstrings =

max

minimax

maximum

>> strmatch('max', maxstrings)???? ? %? 在測試字符串數組中查找以max開頭的字符串

ans =

1

3

在本例中第二行minimax雖然也包含max子串,但是這個子串的并不是以max開始的,所以在查找過程中沒有返回第2行為結果。

3.4?類型轉換

在MATLAB中允許不同類型的數據和字符串類型的數據之間進行轉換,這種轉換需要使用不同的函數完成。另外,同樣的數據,特別是整數數據,有很多種表示的格式,例如十進制、二進制或者十六進制。在C語言中,需要使用printf函數通過相應的格式字符串就可以輸出不同格式的數據。而在MATLAB中,則直接提供了相應的函數可以完成數制的轉換。表3-2和表3-3分別列舉了這些函數。

表3-2 ????? 數字與字符串之間的轉換函數函??? ?數說??? 明函??? 數說??? 明

num2str將數字轉換為字符串str2num將字符串轉換為數字

int2str將整數轉換為字符串sprintf格式化輸出數據到命令行窗口

mat2str將矩陣轉換為eval函數可以使用的字符串sscanf讀取格式化字符串

str2double將字符串轉換為雙精度類型的數據

表3-3 ????? 不同數值之間的轉換函數函??? 數說??? 明函??? 數說??? 明

hex2num將十六進制整數字符串轉換為雙精度數據dec2bin將十進制整數轉換為二進制整數字符串

hex2dec將十六進制整數字符串轉換為十進制數據base2dec將指定數制類型的數字字符串轉換為十進制整數

dec2hex將十進制數據轉換為十六進制整數字符串dec2base將十進制整數轉換為指定數制類型的數字字符串

bin2dec將二進制整數字符串轉換為十進制整數

在表3-2列舉的數字與字符串之間的轉換函數中,常用的是num2str和str2num。這兩個函數在MATLAB的圖形用戶界面編程中應用較多。

【例3-12】? num2str和str2num函數用法實例。

>> a=['1 2';'3 4']??????? % 創建一個字符串數組

a =

1 2

3 4

>> b=str2num(a)??????? % 將字符串轉換為數值形式

b =

1???? 2

3???? 4

>> c=str2num('1+2i')???????? %?將字符串轉換為數值形式

c =

1.0000 +2.0000i

>> d=str2num('1 +2i')???????? %?將字符串轉換為數值形式

d =

1.0000 +0.0000i?? 0.0000 + 2.0000i>>e=num2str(rand(3,3),6)???????? %? 將數值轉換為字符串形式

e =

0.814724????0.913376???? 0.278498

0.905792????0.632359???? 0.546882

0.126987???0.0975404???? 0.957507

>> whos

Name????? Size??????????? Bytes? Class????Attributes

a???????? 2x3??????????????? 12? char

b???????? 2x2??????????????? 32? double

c???????? 1x1??????????????? 16? double???complex

d???????? 1x2??????????????? 32? double???complex

e???????? 3x35????????????? 210? char

本例中轉換生成變量c和d時得到了不同的結果,主要原因是在變量d中,數字 “1”和字符“+2i”之間存在空格,而加號“+”和數字“2”之間沒有空格,所以轉換的結果與生成變量c時不同,創建變量c的時候,在數字“1”、加號“+”和數字“2”之間都存在空格。為了避免出現上述問題,可以使用str2double函數,但是該函數僅能轉換標量,不能轉換矩陣或者數組。

使用num2str函數將數字轉換為字符串時,可以指定字符串所表示的有效數字位數,詳細信息可以查閱MATLAB的help文檔。

3.5? 字符串應用函數小結

MATLAB主要以矩陣計算聞名于世,除此以外該軟件在字符串處理方面也提供了一系列非常強大的函數。表3-4對常用字符串函數進行了分類小結。

表3-4 ????? 字符串函數函??? 數說??? 明

字符串創建函數'str'由單引號(英文狀態)創建字符串

blanks創建空格字符串

sprintf將格式化數據寫入字符串

strcat字符串組合

strvcat豎直方向字符串組合

字符串修改函數deblank刪除尾部空格

lower將所有字符小寫

sort將所有元素升序或降序排列

strjust字符串對齊

strrep字符串替換

strtrim刪除開始和尾部的泛空格符

upper將所有字符大寫

字符串的讀取和操作eval將一個字符串作為MATLAB命令執行

sscanf格式讀入字符串

續表函??? 數說??? 明

字符串查找替換函數findstr查找子串

strcmp字符串比較

strcmpi字符串比較,忽略大小寫

strmatch查找符合要求的行

strncmp比較字符串的前N個字符

strncmpi比較字符串的前N個字符,忽略大小寫

strtok查找某個字符最先出現的位置

總結

以上是生活随笔為你收集整理的matlab字符和字符串,MATLAB字符和字符串的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。