MATLAB 中的数据类型主要包括数值类型、 逻辑类型、 字符串、函数句柄、 结构体和单元数组类型。 这6种基本的数据类型都是按照数组形式存储和操作的。
在MATLAB中, 文本当作特征字符串或简单地当作字符串。字符串能够显示在屏幕上, 也可以用来构成一些命令, 这
些命令在其他的命令中用于求值或者被执行。在MATLAB中可能会遇到对字符和字符串的操作。 一个字符串是存储在
一个行向量中的文本, 这个行向量中的每一个元素代表一个字符。 实际上, 元素中存放的是字符的内部代码, 即
ASCII码。当在屏幕上显示字符变量的值时, 显示出来的是文本, 而不是ASCII数字。 由于字符串是以向量的形式来存
储的, 因此可以通过它的下标对字符串中的任何一个元素进行访问。 字符矩阵也可以通过下标索引进行访问, 但是矩
阵的每行字符数必须相同。字符串一般是ASCII值的数值数组, 它作为字符串表达式进行显示。
在命令行窗口中输入:
>> string='Every good boy does fun.';
>> size(string)
输出结果:
ans =
1 24
在命令行窗口中输入:
>> whos
输出结果:
Name Size Bytes Class Attributes
ans 1x2 16 double
string 1x24 48 char
一个字符串是由单引号括起来的简单文本。 在字符串里的每个字符是数组里的一个元素, 字符串的存储要求每个字符
8字节, 如同MATLAB的其他变量。因为ASCII字符只要求1字节, 故这种存储要求是浪费的, 7/8所分配的存储空间无
用。 然而, 对字符串保持同样的数据结构可以简化MATLAB的内部数据结构。 所给出的字符串操作并不是MATLAB的
基本特点, 但这种表达是方便和可接受的。
为了了解下面字符串的ASCII表达, 只需对字符串执行一些算术运算。
最简单和计算上最有效的方法是取数组的绝对值。
在命令行窗口中输入:
>> string='Every good boy does fun.';
>> U=abs(string)
输出结果:
U =
1 至 23 列
69 118 101 114 121 32 103 111 111 100 32 98 111 121 32 100 111 101 115 32 102 117 110
24 列 46
在命令行窗口中输入:
>> U=U+0
输出结果:
U =
1 至 23 列
69 118 101 114 121 32 103 111 111 100 32 98 111 121 32 100 111 101 115 32 102 117 110
24 列 46
上例中, 加零到字符串并没有改变它的ASCII表达。因为字符串是数值数组, 所以它们可以用MATLAB中所有可利用
的数组操作工具进行操作。
在命令行窗口中输入:
>> string='Every good boy does fun.';
>> U=string(6:10)
输出结果:
U =
' good'
在命令行窗口中输入:
>> string='Every good boy does fun.';
>> U=string(6:10)
输出结果:
U =
' good'
在命令行窗口中输入:
>> U=string(10:-1:7) %从后向前数:-1
输出结果:
U =
'doog'
上例中字符串像数组一样进行编址。 这里元素7~10包含单词good。
字符串内的单引号是由两个连续的单引号来表示的。
在命令行窗口中输入:
>> string='It''s not the manual!'
输出结果:
string =
'It's not the manual!'
在命令行窗口中输入:
>> U='hello';
>> V='world!';
>> W=[U V] %字符串连接
输出结果:
W =
'helloworld!'