主要内容

文本和数值数据类型的有效组合

只要矩阵中的所有元素属于同一类型,矩阵和数组可以由几乎所有 MATLAB® 数据类型的元素组成。如果您在构造矩阵时纳入了不同类的元素,MATLAB 会转换一些元素,以使生成的矩阵中包含的所有元素都为同一类型。

数据类型转换与预设的类优先级相关。下表显示了您可以进行异类串联而不出错的 6 个类。表中的一个例外是无法将逻辑值转换为 char 数据类型。

类型

字符串

字符

整数

单精度值

双精度值

逻辑值

字符串

字符串

字符串

字符串

字符串

字符串

字符串

字符

字符串

字符

字符

字符

字符

无效

整数

字符串

字符

整数

整数

整数

整数

单精度值

字符串

字符

整数

单精度值

单精度值

单精度值

双精度值

字符串

字符

整数

单精度值

双精度值

双精度值

逻辑值

字符串

无效

整数

单精度值

双精度值

逻辑值

例如,串联 doublesingle 矩阵始终都会生成 single 类型的矩阵。MATLAB 将 double 元素转换为 single 以完成该过程。

x = single(1);
y = double(2);
z = [x y]
z =

  1×2 single row vector

     1     2

将其他数据类型与字符串串联会将这些其他数据类型转换为字符串,并将它们作为新元素添加到一个字符串数组中。

s = "Hello";
c = 'world';
x = [1 2 3];
newstr = [s c x]
newstr = 

  1×5 string array

    "Hello"    "world"    "1"    "2"    "3"

您可以使用 + 运算符将其他数据类型作为文本追加到字符串。当标量以这种方式与数组组合时,文本会追加到每个元素。

s = "Hello";
c = 'world';
x = [1 2 3];
newstr = s + c + x
newstr = 

  1×3 string array

    "Helloworld1"    "Helloworld2"    "Helloworld3"

另请参阅

主题