Main Content

convertCharsToStrings

将字符数组转换为字符串数组,其他数组不变

说明

处理您自己的代码时,可以使用 convertCharsToStrings 使代码接受字符数组。这样,您无需再对编写的代码进行任何其他更改,即可使用字符串数组。

示例

如果 A 是字符数组或字符向量元胞数组,B = convertCharsToStrings(A) 会将 A 转换为字符串数组。如果 A 包含其他任何数据类型,则 convertCharsToStrings 会按原样返回 A

示例

[B1,...,Bn] = convertCharsToStrings(A1,...,An)A1,...,An 中的任何字符数组或字符向量元胞数组转换为字符串数组,然后返回它们作为 B1,...,Bn 中对应的输出参数。如果 A1,...,An 的任何参数包含其他任何数据类型,则 convertCharsToStrings 会按原样返回这些数据。

示例

全部折叠

创建一个字符向量,然后将其转换为字符串标量。

chr = 'Mercury'
chr = 
'Mercury'
str = convertCharsToStrings(chr)
str = 
"Mercury"

将字符向量元胞数组转换为字符串数组。

C = {'Venus','Earth','Mars'}
C = 1x3 cell
    {'Venus'}    {'Earth'}    {'Mars'}

str = convertCharsToStrings(C)
str = 1x3 string
    "Venus"    "Earth"    "Mars"

处理任意多个不同类型的输入数组,仅将字符数组转换为字符串数组。

创建一组数值数组、字符数组和字符串数组。

A = [1 2 3]
A = 1×3

     1     2     3

str = ["Mercury","Gemini","Apollo"]
str = 1x3 string
    "Mercury"    "Gemini"    "Apollo"

B = [2 5; 7 6]
B = 2×2

     2     5
     7     6

C = {'volts','amps'}
C = 1x2 cell
    {'volts'}    {'amps'}

转换字符数组,其他数组不变。

[newA,newStr,newB,newC] = convertCharsToStrings(A,str,B,C)
newA = 1×3

     1     2     3

newStr = 1x3 string
    "Mercury"    "Gemini"    "Apollo"

newB = 2×2

     2     5
     7     6

newC = 1x2 string
    "volts"    "amps"

输入参数

全部折叠

输入数组,指定为任意大小或数据类型的数组。

输出参数

全部折叠

输出数组。输出数组的数据类型取决于输入数组 A 的数据类型。

  • 如果 A 是字符向量,则 B 是字符串标量。

  • 如果 A 是字符向量元胞数组,则 B 是具有相同大小的字符串数组。

  • 如果 A 是包含多行的字符数组,则 A 的列将串联起来并以字符串标量形式返回 B。例如,3×2 字符数组 ['Xx';'Yy';'Zz'] 将转换为 "XYZxyz"

  • 如果 A 包含其他任何数据类型,则 BA 完全相同。

提示

  • 要使处理字符串的代码接受字符数组作为输入,请在代码开头添加对 convertCharsToStrings 的调用。

    例如,如果您定义了接受三个输入参数的函数 myFunc,则使用 convertCharsToStrings 处理所有三个输入。其余的代码保持不变。

    function y = myFunc(a,b,c)
        [a,b,c] = convertCharsToStrings(a,b,c);
        <line 1 of original code>
        <line 2 of original code>
        ...

    在此示例中,输出参数 [a,b,c] 覆盖了原有的输入参数。如果有任意输入参数不是字符数组或字符向量元胞数组,则该参数保持不变。

    如果 myFunc 接受可变数目的输入参数,则处理由 varargin 指定的所有参数。

    function y = myFunc(varargin)
        [varargin{:}] = convertCharsToStrings(varargin{:});
        ...
  • 在转换一个输入参数时,convertCharsToStrings 函数更高效。如果需要考虑性能问题,则请一次对一个输入参数调用 convertCharsToStrings,而不是一次对多个输入参数调用该函数。

扩展功能

基于线程的环境
使用 MATLAB® backgroundPool 在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool 加快代码运行速度。

版本历史记录

在 R2017b 中推出