主要内容

matlab.lang.makeValidName

构建有效的MATLAB来自输入字符串的标识符

描述

例子

N= matlab.lang.makeValidName (年代构建有效的MATLAB®标识符,N,从输入字符串,年代.的makeValidName函数不能保证输入的字符串N是独一无二的。

一个有效的MATLAB标识符是由字母数字(A - z, A - z, 0-9)和下划线组成的字符向量,这样第一个字符是一个字母,字符向量的长度小于或等于namelengthmax

makeValidName在替换非字母数字或下划线的任何字符之前,删除任何空白字符。如果空格字符后面跟着小写字母,makeValidName将字母转换为相应的大写字符。

例子

N= matlab.lang.makeValidName (年代,名称,值包括由一个或多个指定的附加选项名称,值对参数。

例子

N,修改) = matlab.lang.makeValidName (___返回逻辑数组,修改,表示修饰过的元素。您可以将此语法与前面语法的任何输入参数一起使用。

例子

全部折叠

S = {“Item_ #”,“价格/单位”,“一阶”,“接触”};N = matlab.lang.makeValidName (S)
N =1 x4单元格{' Item__}{‘Price_Unit}{‘x1stOrder}{“接触”}

在第一个和第二个元素中,makeValidName替换无效字符(/),下划线。在第三个要素中,makeValidName因为字符向量不是以字母开头,所以追加一个前缀,删除空白,并将空格后面的字符大写。

将无效字符替换为相应的十六进制表示。

S = {“Item_ #”,“价格/单位”,“一阶”,“接触”};N = matlab.lang.makeValidName(年代,“ReplacementStyle”,十六进制的
N =1 x4单元格{'Item_0x23'} {'Price0x2FUnit'} {'x1stOrder'} {'Contact'}

在第一个和第二个元素中,makeValidName替换无效字符(/),并以十六进制表示。在第三个要素中,makeValidName因为字符向量不是以字母开头,所以追加一个前缀,删除空白,并将空格后面的字符大写。

删除无效字符。

N = matlab.lang.makeValidName(年代,“ReplacementStyle”,“删除”
N =1 x4单元格{'Item_'} {'PriceUnit'} {'x1stOrder'} {'Contact'}

makeValidName删除无效字符(/).在第三个要素中,makeValidName因为字符向量不是以字母开头,所以追加一个前缀,删除空白,并将空格后面的字符大写。

S = {“1 stmeasurement”,“2 ndmeasurement”,“控制”};N = matlab.lang.makeValidName(年代,“前缀”,“m_”
N =1 x3单元格{' m_1stMeasurement}{‘m_2ndMeasurement}{‘控制’}

只有不是以字母开头的元素才使用前缀。

S = {“一个%的名字”,“name_1”,“2 _name”};[N, modified] = matlab.lang.makeValidName(S)
N =1 x3单元格{' a_name}{‘name_1} {' x2_name '}
修改=1 x3逻辑阵列1 0 1

makeValidName没有修改第二个元素。

输入参数

全部折叠

输入字符串,指定为字符向量、字符向量单元格数组或字符串数组。

名称-值参数

指定可选的逗号分隔的对名称,值参数。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“ReplacementStyle”、“删除”删除无效字符。

替换样式,指定为“下划线”,“删除”,或十六进制的.这个值控制MATLAB如何替换非字母数字字符。对于所有值ReplacementStyle, MATLAB删除空白字符,并将空格后的小写字母更改为大写字母。

ReplacementStyle价值 描述
“下划线”(默认) 将所有非字母数字或下划线的字符替换为下划线。“下划线”
十六进制的 将每个非字母数字或下划线的字符替换为其相应的十六进制表示形式。十六进制的
“删除” 删除所有非字母数字或下划线的字符。“删除”

不以字母开头的输入的前缀字符makeValidName替换指定为字符向量或字符串标量的非字母数字字符。例如,默认情况下,makeValidName将字符作为输入的前缀“*你好”因为,在它替换非字母数字字符后,输入不是以字母(“_hello”).但是,如果指定替换样式删除非字母数字字符,makeValidName不为字符添加前缀。替换非字母数字字符后,输入以字母(“你好”).

有效的前缀必须满足以下条件。

  • 以字母开头。

  • 只包含字母数字字符和下划线。

  • 不是一个MATLAB关键字。

  • 不要比价值长namelengthmax

输出参数

全部折叠

有效的MATLAB标识符,作为字符向量、字符向量的单元数组或字符串数组返回。输出和输入的维度数相同,年代

修改元素的指示符,作为逻辑标量或数组返回,且与输入具有相同的维数,年代.的值1真正的)表明,makeValidName修改了相应位置的输入。的值0)表明,makeValidName不需要在相应的位置修改输入。

提示

  • 要确保输入值是有效和唯一的,请使用matlab.lang.makeUniqueStringsmatlab.lang.makeValidName

    S = {”我。的名字',“my_Name”,“my_Name”};validValues = matlab.lang.makeValidName(S) validUniqueValues = matlab.lang.makeUniqueStrings(validValues,{},...namelengthmax)
    validUniqueValues = 'my_Name' 'my_Name' 'my_Name'

  • 若要自定义无效字符替换,请首先使用如下函数strrepregexprep转换为有效字符。例如,转换“@”字符年代“在”使用strrep(年代,“@”,“在”).然后,用matlab.lang.makeValidName以确保所有字符年代是有效的。

介绍了R2014a