Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

convertStringsToChars

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

说明

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

示例

如果 A 是字符串数组,B = convertStringsToChars(A) 会将 A 转换为字符向量或字符向量元胞数组。否则,convertStringsToChars 将按原样返回 A

示例

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

示例

全部折叠

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

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

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

str = ["Venus","Earth","Mars"]
str = 1x3 string
    "Venus"    "Earth"    "Mars"

C = convertStringsToChars(str)
C = 1x3 cell
    {'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] = convertStringsToChars(A,str,B,C)
newA = 1×3

     1     2     3

newStr = 1x3 cell
    {'Mercury'}    {'Gemini'}    {'Apollo'}

newB = 2×2

     2     5
     7     6

newC = 1x2 cell
    {'volts'}    {'amps'}

输入参数

全部折叠

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

输出参数

全部折叠

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

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

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

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

如果 A 是字符串数组,convertStringsToChars 将按如下方式进行转换:

  • 将任何空字符串元素(显示为 "")转换为 0×0 字符数组(显示为 ''

  • 将任何缺失字符串元素(显示为 <missing>)转换为 0×0 字符数组

如果 A 是空字符串数组,则 B 是空元胞数组。空数组至少有一个维度的大小为 0

提示

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

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

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

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

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

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

扩展功能

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

在 R2017b 中推出