![量化投资:以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=1739167318-prgz78sGFhHKvU4Mn5XmjSQV00OhHgZL-0-c58350280ada7efd238d7ab5becb7113)
其中str里没有单引号,如果像下面这样:
![](https://epubservercos.yuewen.com/BE0359/26763841001449106/epubprivate/OEBPS/Images/24730_39_3.jpg?sign=1739167318-UIfk1LqUcGbaJNoMyBLwBiuxQIIC6HJW-0-a55a6b9dbf73b1ef791c097b612bb5dc)
又会出现报错,原因是MATLAB进行匹配时是一个单引号对一个单引号。如果字符串中有单引号,按照一般的方式输入就会造成匹配的错误,出现上面的错误提示。正确的解决方式是:
![](https://epubservercos.yuewen.com/BE0359/26763841001449106/epubprivate/OEBPS/Images/24730_40_1.jpg?sign=1739167318-LBzU91LPBUsrpRhoYuRUNhEhHNWb8F6A-0-ed58d703e163c3e695f2a18448952085)
输入三个单引号就可以实现了。如果想要双引号,比如 str="string",此时直接输入双引号就行了:
![](https://epubservercos.yuewen.com/BE0359/26763841001449106/epubprivate/OEBPS/Images/24730_40_2.jpg?sign=1739167318-XeTcY7YUd8c73YHpaW2j8HUHc9mH9QY3-0-e9adf4a936c0bf6560f28ff69340ce4b)
注意:此处不是三个单引号,是一对单引号和一对双引号,在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=1739167318-bBfFLq01SUtdBgAI5HNXGNNGPmeJX3CT-0-6e6410fee59c1ba0616de712a8070487)
运行结果:
![](https://epubservercos.yuewen.com/BE0359/26763841001449106/epubprivate/OEBPS/Images/24730_40_4.jpg?sign=1739167318-xunudwr1mzOzjioN8pqYdXAC2Try333u-0-95befd88ed1e1b611277c9745f5fcbc7)
(49)如何返回字符个数?
使用length函数可以计算字符的个数。