一起來學matlab-字符串操作
10_4 MATLAB中的字符串表示
覺得有用的話,歡迎一起討論相互學習~Follow Me
參考書籍
《matlab 程序設計與綜合應用》張德豐等著 感謝張老師的書籍,讓我領略到matlab的便捷
《MATLAB技術大全》葛超等編著 感謝葛老師的書籍,讓我領略到matlab的高效
MATLAB中的字符串符號
- MATLAB將字符串當做一個行向量,每個元素對應一個字符;也就是將字符串保存在一個行向量中,向量的每個元素對應一個字符。
- MATLAB中使用單引號將字符串擴起來,’’ 注意不是雙引號
- 字符串矩陣的每一行字符串元素的個數可以不同,但是每一行中所有字符串中的總個數必須相同。
- 每一行中字符串的計算只計算單引號擴起來的並且算空格的部分 括號之間的空格不一樣
- 事實上,MATLAB將行內的所有字符串都合併起來,構成一個字符串,單個字符串之間不加空格,這正是每行中輸入的字符串個數可以不相同的根本原因
>> SA=['hello';'world';'我是許某某']
SB=['你好' '但是我不好' '有沒有想過你爲什麼不好';'那不知道你爲什麼不好啊' '那就是 命運吧'] % 一行中的字符只算單引號中的,並且不計算單引號中的括號
SC=['hello' 'nihao';'world';'我是許某某'] % 兩行的字符長度不同,所以會報錯[1,10],[1,5],[1,5]
SA =
hello
world
我是許某某
SB =
你好但是我不好有沒有想過你爲什麼不好
那不知道你爲什麼不好啊那就是 命運吧
串聯的矩陣的維度不一致。
- 利用這個特點,可以用[]將任意字符串連接起來
>> [SA(1,:) SA(2,:) SA(3,:)]
ans =
helloworld我是許某某
-
對於’也是可以標識特殊字符的標識,因此:
-
字符串標識方法和數值向量或矩陣相同,也就是可以對元素進行提取或重新賦值的操作
>> s1='My name is limomo'
s1 =
My name is limomo
>> s2=s1(1:end) % 是s1(1:1:end)的縮寫,表示從頭到尾進行取值,不間隔字符
s2 =
My name is limomo
>> s2=s1(1,:)
s2 =
My name is limomo
>> s2=s1(end:-1:1) % 是s1(end:-1:1,:)的縮寫,表示從尾到頭進行取值,不間隔字符
s2 =
omomil si eman yM
- 字符串及字符串矩陣可以進行加、減、乘、除四則運算和其他的數學運算。由於MATLAB是將字符串及字符串矩陣當作數據矩陣來處理的,因而在進行這些運算時,實際上是由字符串的各個字符的ASCII碼組成的數據矩陣之間的數學運算。通常可以打印的字符的ASCII碼在32-127範圍之間,同時任意8位二進制數的範圍在0-255之間,如果數值不是正整數,或是超出了上面的範圍,則實際上是打印出ASCII碼爲fix(rem(A,256))的字符.
'a'+'b'
ans=195
'a'*'b'
ans=9506
abs('a')
ans=97
abs('b')
ans=98