1. 程式人生 > >MATLAB學習04之字串運算

MATLAB學習04之字串運算

字串運算

字串變數與一維字元陣列

字串其實是一個一維字元陣列,在對字串進行操作時,其實就是對一維字元陣列進行操作 在這裡插入圖片描述

字串變數賦值

>> s1 = 'go home'   %直接賦值
s1 =
go home

用單引號進行賦值

一維字元陣列的生成

三種方法:

>> Sa = ['I love my teacher, ', 'I' , ' love truths', ' more profoundly']
Sa =
I love my teacher, I love truths more profoundly
>> Sb = char('a' : 2 : 'r')
Sb =
acegikmoq
>> Sc = char(linspace('e','t',10))
Sc =
efhjkmoprt
  • 第一種方法是用字串(一維字元陣列)進行拼接
  • 第二和第三種都是使用char()函式,char()是將一個數值轉換成字串的函式
>> char([65 97])
ans =
Aa

字串操作

求字串長度

  • length()求出陣列各維中最大的數值大小
  • size()給出各維數值大小
  • length() = max(size())
>> Sa = ['I love my teacher, ', 'I' , ' love truths', ' more profoundly']
Sa =
I love my teacher, I love truths more profoundly
>> length(Sa)
ans =
    48
>> size(Sa)
ans =
     1    48

字串與一維數值陣列的轉換

  • abs(),double()方法可將字串轉換為一個數值陣列
  • char()如上介紹
  • setstr()也可將數值陣列轉換為字串(一維字元陣列)
>> A = 'I am no nobody'
A =
I am no nobody
>> As1 = abs(A)
As1 =
    73    32    97   109    32   110   111    32   110   111    98   111   100   121
>> As2 = double(A)
As2 =
    73    32    97   109    32   110   111    32   110   111    98   111   100   121
>> char(As2)
ans =
I am no nobody
>> setstr(As2)
ans =
I am no nobody

字串比較

  • strcmp(S1,S2),當S1和S2完全相同時,返回1,否則返回0
  • strcmp \Rightarrow string compare
>> S1 = 'I am no body'
S1 =
I am no body
>> S2 = 'I am no body.'   %有一個dot
S2 =
I am no body.
>> strcmp(S1,S2)           %不相同,返回0
ans =
     0
>> strcmp(S1,S1)
ans =
     1