在MATLAB中,字符数组和字符串数组都用于存储文本数据;但两者有很大的区别:
一、字符数组
字符数组是一个字符序列,类似于数值数组是一个数字序列。
常见的情况有:
-
直接将文本存储为字符向量
char_array = 'Hello, world';
输出结果为:
char_array = 'Hello, world'
注意:此处为单引号。
-
使用num2str转换的数字数组
arr = [1 2 3]; char_array = num2str(arr);
输出:
char_array = '1 2 3'
注意:此处为单引号。
二、字符串数组
字符串数组是一个文本容器,提供了一组用于文本处理的函数。自MATLAB 2017a开始,可用双引号创建字符串。字符串数组的每个元素存储一个字符序列,此序列长度可以不同。若字符串数组只有一个元素,则成为字符串标量。
-
创建字符串数组
str = "Hello, world"
输出:
str = "Hello, world"
注意:此处为双引号。
-
使用string函数将数组转换为字符串数组
arr = [1 2 3]; str = string(arr);
输出
str = 1×3 string 数组 "1" "2" "3"
注意:生成了一个1×3字符串数组,其中每个元素生成了一个字符串。
举例:
将数字数组转换为字符串
>> arr = [1 2 3] arr = 1 2 3 >> char_array = num2str(arr) char_array = '1 2 3' >> str = string(char_array) str = "1 2 3"
其中:arr为数字数组,num2str函数将arr转换为字符数组char_array,string函数将字符数组char_array转换为字符串数组str。由于str仅包含一个元素,故str为字符串标量。