![MATLAB R2022a完全自学一本通](https://wfqqreader-1252317822.image.myqcloud.com/cover/854/47548854/b_47548854.jpg)
2.1.3 字符类型
在MATLAB中,将文本当作特征字符串或简单地当作字符串。字符串能够显示在屏幕上,也可以用来构成一些命令,这些命令在其他的命令中用于求值或被执行。
在MATLAB中,可能会遇到对字符和字符串的操作。一个字符串是存储在一个行向量中的文本,这个行向量中的每个元素代表一个字符。实际上,元素中存放的是字符的内部代码,即ASCII码。
当在屏幕上显示字符变量的值时,显示出来的是文本,而不是ASCII码。由于字符串是以向量的形式存储的,因此可以通过下标对字符串中的任何一个元素进行访问。对于字符矩阵,也可以通过下标索引进行访问,但是矩阵的每行字符数必须相同。
字符串一般是ASCII码的数值数组,作为字符串表达式进行显示。
例2-6:字符串属性示例。
在命令行窗口中输入:
![](https://epubservercos.yuewen.com/57BE9F/26947316904586506/epubprivate/OEBPS/Images/44590_44_2.jpg?sign=1738960340-cgEIrV6pnbIzDFeb575QO6yWc7OYXzI9-0-11f871907925b3e434ba3d3e6acfa6dc)
输出结果:
![](https://epubservercos.yuewen.com/57BE9F/26947316904586506/epubprivate/OEBPS/Images/44590_44_3.jpg?sign=1738960340-kTTyiwGk2wB8Fo0O5qnM9ywHz8kk3GR5-0-f99aaa3ddf5312c87d7a331708b4afff)
在命令行窗口中输入:
![](https://epubservercos.yuewen.com/57BE9F/26947316904586506/epubprivate/OEBPS/Images/44590_44_4.jpg?sign=1738960340-p3O9GoRgBWTZos5QeMyWxxYCYw1l94pv-0-6fff0db34d8a929bdbf67f640ed8fcfa)
输出结果:
![](https://epubservercos.yuewen.com/57BE9F/26947316904586506/epubprivate/OEBPS/Images/44590_45_1.jpg?sign=1738960340-5RxWKCCXVYRXN5i3XA8mWMWcNZU9E7VQ-0-5ce04334994f0cbfc1f601431e77b9a5)
一个字符串是由单引号引起来的简单文本。字符串中的每个字符都是数组中的一个元素,字符串存储要求每个字符占8字节,如同MATLAB的其他变量。
因为ASCII码字符只要求占1字节,所以这种存储要求是浪费空间的,所分配的的存储空间无用。然而,对字符串保持同样的数据结构可以简化MATLAB的内部数据结构。MATLAB中给出的字符串操作并不是MATLAB的基本特点,但这种表达是方便和可接受的。
为了了解字符串的ASCII码表达,只需对字符串执行一些算术运算。最简单和计算上最有效的方法是取数组的绝对值。
例2-7:字符串的ASCII码表达。
在命令行窗口中输入:
![](https://epubservercos.yuewen.com/57BE9F/26947316904586506/epubprivate/OEBPS/Images/44590_45_3.jpg?sign=1738960340-nl5EfNndCIzAgc4Dl7lEAoShZOItcAqc-0-1c153c1323742fcc56b3729672d57066)
输出结果:
![](https://epubservercos.yuewen.com/57BE9F/26947316904586506/epubprivate/OEBPS/Images/44590_45_4.jpg?sign=1738960340-Na8TXHuZg19hXQU9SmWucNJCQnh4PtHY-0-604149f63648d98422768355e0d4be6d)
在命令行窗口中输入:
![](https://epubservercos.yuewen.com/57BE9F/26947316904586506/epubprivate/OEBPS/Images/44590_45_5.jpg?sign=1738960340-doDmnPMMeTla7PYolzXapIWhHuXDGHg1-0-01d4ac9cb15e6d132baf9451fe0e37bf)
输出结果:
![](https://epubservercos.yuewen.com/57BE9F/26947316904586506/epubprivate/OEBPS/Images/44590_45_6.jpg?sign=1738960340-HSmYeRQtBNMBuC3c7dDuC1lMmWRMbbRN-0-0fadd5358f5cb7451eead0f8eb403e96)
在本例中,给字符串加零并没有改变它的ASCII码表达。因为字符串是数值数组,所以可以用MATLAB中所有可利用的数组操作工具对其进行操作。
例2-8:字符串数组的索引示例。
在命令行窗口中输入:
![](https://epubservercos.yuewen.com/57BE9F/26947316904586506/epubprivate/OEBPS/Images/44590_45_7.jpg?sign=1738960340-qBhBubdcWP8fAxFtWID78ZsLiBs68b9t-0-0ce0936b1b67701931dfe6464cba5c8f)
输出结果:
![](https://epubservercos.yuewen.com/57BE9F/26947316904586506/epubprivate/OEBPS/Images/44590_45_8.jpg?sign=1738960340-q12JcWWeJwveruVi7lvbl7yTRd7nPSyD-0-ae7f7c6bdaa3ae421e6fa59999be9f6d)
在命令行窗口中输入:
![](https://epubservercos.yuewen.com/57BE9F/26947316904586506/epubprivate/OEBPS/Images/44590_45_9.jpg?sign=1738960340-J9v7HNzYQpSCmNFMIblp8O0J9bWs2O4H-0-5738bf546980da97939f2f1300e99ed2)
输出结果:
![](https://epubservercos.yuewen.com/57BE9F/26947316904586506/epubprivate/OEBPS/Images/44590_46_1.jpg?sign=1738960340-pDZb0Lsjh8QKv9jk8uIv07gXtroFf38X-0-c70f1381d2f9b04a2f99dabfb22eb3e3)
在本例中,字符串像数组一样进行编址。这里元素7~10包含单词good。
字符串中的单引号是由两个连续的单引号来表示的。
例2-9:字符串中的单引号。
在命令行窗口中输入:
![](https://epubservercos.yuewen.com/57BE9F/26947316904586506/epubprivate/OEBPS/Images/44590_46_2.jpg?sign=1738960340-D2yXabwLGhKh7VbaRBSXjd79GxixfrhQ-0-bb81f8e36558cabe7d6cf4729bf95313)
输出结果:
![](https://epubservercos.yuewen.com/57BE9F/26947316904586506/epubprivate/OEBPS/Images/44590_46_3.jpg?sign=1738960340-kjPGRADrxYLBX0t2MQ14AjXCvcWrG5jG-0-287a1df737d6261538db0ec3e33d271f)
字符串的连接可以通过直接将字符串数组连接起来来实现。
例2-10:字符串的连接。
在命令行窗口中输入:
![](https://epubservercos.yuewen.com/57BE9F/26947316904586506/epubprivate/OEBPS/Images/44590_46_4.jpg?sign=1738960340-ZxjKUBwR146ZfPcVc6uYXyQR0a872n0Q-0-0be1af7a6699e86142db4ad6855b9f58)
输出结果:
![](https://epubservercos.yuewen.com/57BE9F/26947316904586506/epubprivate/OEBPS/Images/44590_46_5.jpg?sign=1738960340-464NkOiLtU3ICEa3bZnTvqgNydzcrrXU-0-d0b42b6f08898c99290d2e770ab4344a)