![量化投资:以MATLAB为工具](https://wfqqreader-1252317822.image.myqcloud.com/cover/746/47378746/b_47378746.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
0.6 字符操作
(45)MATLAB对大小写敏感吗?
MATLAB对大小写是敏感的,可以使用lower、upper等函数对字符进行转化。
(46)如何在MATLAB中定义带引号的字符串?
在MATLAB编程中,如果想得到带有引号的字符串(字符串中本身带有引号),怎么实现?输入str='string'得到的是:
![](https://epubservercos.yuewen.com/BE0359/26763841001449106/epubprivate/OEBPS/Images/24730_39_2.jpg?sign=1738872567-kJwh9bxasj9nYWZvKVVZSEN5fSMhxt8p-0-13441d40289ae469fa7c2259446e8864)
其中str里没有单引号,如果像下面这样:
![](https://epubservercos.yuewen.com/BE0359/26763841001449106/epubprivate/OEBPS/Images/24730_39_3.jpg?sign=1738872567-eFUc2UvX89YnYbLJ7jH3yYmqj2EsLEPE-0-9ccfaf97f32d3588d90b6a17f3c4d041)
又会出现报错,原因是MATLAB进行匹配时是一个单引号对一个单引号。如果字符串中有单引号,按照一般的方式输入就会造成匹配的错误,出现上面的错误提示。正确的解决方式是:
![](https://epubservercos.yuewen.com/BE0359/26763841001449106/epubprivate/OEBPS/Images/24730_40_1.jpg?sign=1738872567-phO1amjLmUCJYRub3jOtgpurhFaruYxr-0-2147a277a516734394d0b4c2b4e513cc)
输入三个单引号就可以实现了。如果想要双引号,比如 str="string",此时直接输入双引号就行了:
![](https://epubservercos.yuewen.com/BE0359/26763841001449106/epubprivate/OEBPS/Images/24730_40_2.jpg?sign=1738872567-8xXb6WIjFWRIva4Ks9wdx8CticpiIIWl-0-e112a6ec1856d9e77ba7f610a5733be9)
注意:此处不是三个单引号,是一对单引号和一对双引号,在MATLAB中能很容易看清楚。
(47)在MATLAB中如何使用正则表达式(Regular Expressions)?
正则表达式是一个表达式(也是一串字符),它定义了某种字符串模式,利用正则表达式,可以对大段的文字进行复杂的查找、替换等。MATLAB提供的正则表达式主要有以下三个。
regexp:用于对字符串进行查找,大小写敏感;
regexpi:用于对字符串进行查找,大小写不敏感;
regexprep:用于对字符串进行查找并替换。
详细用法可以参考MATLAB官方帮助文件以及下面这个帖子:
《Matlab正则表达式零基础起步教程》,http://www.matlabsky.com/thread-22038-1-1.html。
(48)如何在字符串中选取特定位置的字符?
只需根据相应的下标就可以获取特定位置的字符,见下例:
![](https://epubservercos.yuewen.com/BE0359/26763841001449106/epubprivate/OEBPS/Images/24730_40_3.jpg?sign=1738872567-6VF7esQ2ycPy7EHvvISKSAYr4Po7gw96-0-393362395230c67e3b8613943ab315b1)
运行结果:
![](https://epubservercos.yuewen.com/BE0359/26763841001449106/epubprivate/OEBPS/Images/24730_40_4.jpg?sign=1738872567-7qxLhf7Mt27fEvNXLmbKV5zKJ2gQoZfr-0-73187f2ecf4946dd64e28db9d4a03eeb)
(49)如何返回字符个数?
使用length函数可以计算字符的个数。