matlab系列文章:👉 目录 👈
对于数学来说,字符型数据可能不是很重要,但是用到的时候又必不可少。因此便有了本篇关于字符型数据的介绍。
在这里,字符型数据被分成了 字符串 和 字符变量 来介绍,两者用法稍有不同。
字符:和 Python、Java 等高级语言类型类似,专注与数学计算的 matlab 中也有字符型数据,就像是 a
、b
等等只有一个字符的数据。
字符串:简单来说,字符串就是由若干个字符组合起来的数据,比如 ab
、adccsa
等。
>> a = 'abcd'
a =
'abcd'
>>
>> whos
Name Size Bytes Class Attributes
a 1x4 8 char
>> b = char('abcasd')
b =
'abcasd'
>>
>> whos
Name Size Bytes Class Attributes
b 1x6 12 char
字符数组同样用 char()
函数创建。
>> a1 = char('abcasd','asdass')
a1 =
2×6 char 数组
'abcasd'
'asdass'
>>
>> whos
Name Size Bytes Class Attributes
a1 2x6 24 char
>> c = "hello" % " 创建字符串
c =
"hello"
>>
>> whos
Name Size Bytes Class Attributes
c 1x1 150 string
>> d = "hello world" % string() 函数创建字符串
d =
"hello world"
>>
>> whos
Name Size Bytes Class Attributes
d 1x1 166 string
>> c1 = ["hello" "world";"nihao" "hhh"] %注意,不同维度的向量用 ; 隔开
c1 =
2×2 string 数组
"hello" "world"
"nihao" "hhh"
>>
>> whos
Name Size Bytes Class Attributes
c1 2x2 312 string
虽说是讲述 字符(char
) 与 字符串(string
) 的相关操作,但相较于 字符串(string
)来说,字符(char
)的使用更多,所以这里说字符(char
)更多些。
常用的检测字符串长度的函数有两个 —— length()
与 size()
,但是主要针对多个纬度的情况略有不同。
length()
是从多个维度中选择最大值并返回size()
是将多个维度中的长度以一个向量的形式返回>> a = 'abcdef'
a =
'abcdef'
>>
>> length(a)
ans =
6
>> a = 'abcdef'
a =
'abcdef'
>>
>> size(a)
ans =
1 6
字符(char
) 与 字符串(string
) 的拼接方式稍有不同。
char
) 通过 strcat()
函数进行拼接string
) 直接通过 +
即可字符(char
) 通过 strcat()
函数进行拼接。
>> x = 'abcde'
x =
'abcde'
>>
>> y = 'fghij'
y =
'fghij'
>>
>> z = strcat(x,y)
z =
'abcdefghij'
字符串(string
) 直接通过 +
即可。
>> a = "abc"
a =
"abc"
>>
>> b = "def"
b =
"def"
>>
>> c = a + b
c =
"abcdef"
通过 strcmp()
函数可以比较两个 字符 或 字符串,当两个字符完全相同时,返回值为 1
;若不同,则返回值为 0
。
strcmp(s1,s2)
,s1 与 s2 为两个需要匹配的字符串。>> a = 'abcd'
a =
'abcd'
>>
>> b = 'abcd'
b =
'abcd'
>>
>> strcmp(a,b)
ans =
logical
1
如果我们想要查找某个长字符串里的短字符串,就可以使用 findstr()
函数来查找。
findstr()
函数将会查找某个字符串中的子字符串,找到则将以数组的形式返回每个子串在长串中的起始位置。若找不到则将返回一个空数组。findstr(s_long,s_short)
,s_long
为长字符串,s_short
为短字符串(子串)>> a = 'I am a good boy'
a =
'I am a good boy'
>>
>> findstr(a,'o')
ans =
9 10 14
disp()
是一个用来显示字符串的函数,就类似与 Java、Python 语言中的 print()
>> a = 'I am a good boy'
a =
'I am a good boy'
>>
>> disp(a)
I am a good boy
字符的索引也算是一个比较重要的功能:字符可以被索引,而字符串不能
>> a = 'abcdef' %%字符
a =
'abcdef'
>>
>> for i = 1:3 %%索引字符
a(i)
end
ans =
'a'
ans =
'b'
ans =
'c'
>> b = "abcdef" %%字符串
b =
"abcdef"
>>
>> for i = 1:3 %%索引字符串
b(i)
end
ans =
"abcdef"
Index exceeds the number of array elements. Index must not exceed 1.
索引字符串会出现异常。