MATLAB中字串處理

2021-10-01 23:56:06 字數 1713 閱讀 6888

在matlab中 字串是用單引號括起來的字串行

若字串中有單引號,那就要用兩個單引號來表示

>> 'i''m superman'

ans =

i'm superman

建立多行字串 列數要相同

>> wow=['sadf';'2134']

wow =

sadf

2134

>> wow(2,4)

ans =

4

建立乙個字串向量,然後對該向量作如下處理:

1,取1~5個字元組成的子字串。

2,將字串倒過來重新排列

3,將字串中的小寫字母變成相應的大寫字母,其餘字元不變。

4,統計字串中小寫字母的個數

>> hi(1,1:5)

ans =

abc12

>> hi(end:-1:1)

ans =

9gf65e4d321cba

>> find(hi>='a'&hi<='z')

ans =

3 7 9 13

>> hi(ans)=hi(ans)-('a'-'a')

hi =

abc123d4e56fg9

>> length(ans)

ans =

4

字串執行 eval(s)

>> t=pi;

>> m='[t,sin(t),cos(t)]'

m =[t,sin(t),cos(t)]

>> u=eval(m)

u = 3.1416 0.0000 -1.0000

(2)字串與數值之間的轉換

abs和double函式都可以用來獲取字串矩陣所對應的ascii碼數值矩陣。

char函式可以把ascii碼矩陣轉換為字串矩陣

>> abs('matlab')

ans =

77 65 84 76 65 66

>> char(77)

ans =

m>>char(a+32)

ans=

matlab

(3)字串的比較

字串的比較有兩種方法:利用關係運算子或字串比較函式。

關係運算子比較:按照兩個字串裡的每個字元的ascii碼比較,結果是乙個0 1數值向量,

>> 'sa'<'we'

ans =

1×2 logical 陣列

1 1

字串比較函式用於判斷字串是否相等,有4鐘比較方式

1,strcmp(s1,s2) s1 s2是否相等,是 1 否 0

2,srtncmp(s1,s2,n)比較兩個字串前n個字元是否相等,是1否0

3,strcmpi(s1,s2)忽略大小寫前提下比較是否相等

4,srtncmpi(s1,s2,n)忽略大小寫前提下比較前n個字元是否相等

(3)字串查詢與替換

findstr(s1,s2) 返回字串在長字串中的開始位置。

strrep(s1,s2,s3) 將字串s1中所有子字串s2替換為s3.

ans =

1 11

ans =

matlab字串處理

matlab字串處理 字串處理 a a b b b c cccc m 獲取字串長度 length a 連線兩個字串,每個字串最右邊的空格被裁切 d strcat a,c length d 連線多行字串,每行長度可不等,自動把非最長字串最右邊補空格 使與最長字串相等,會忽略空字串 e strvcat ...

Matlab字串處理

length a 獲取字串長度 d strcat a,c 連線兩個字串,每個字串最右邊的空格被裁切 strcmp 比較兩個字串是否完全相等,是,返回真,否則,返回假 strncmp 比較兩個字串前n個字元是否相等,是,返回真,否則,返回假 strcmpi 比較兩個字串是否完全相等,忽略字母大小寫 s...

matlab字串處理

matlab字串處理 字串處理 a a b b b c cccc m length a 獲取字串長度 str str1,str2 無縫連線兩個字串 d strcat a,c 連線兩個字串,每個字串最右邊的空格被裁切 e strvcat a,b,m 連線多行字串,每行長度可不等,自動把非最長字串最右邊...