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