主要内容

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\u Unit'}{'x1stOrder'}{'Contact'}

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

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

S = {“Item_ #”“价格/单位”“第一订单”“联系人”};N=matlab.lang.makeValidName(S,“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(S,“前缀”“嗯”
N =1 x3单元格{' m_1stMeasurement}{‘m_2ndMeasurement}{‘控制’}

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

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

makeValidName没有修改第二个元素。

输入参数

全部折叠

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

名称-值参数

指定可选的逗号分隔的对名称,值论据。的名字参数名和价值是对应的值。的名字必须出现在引号内。您可以按任意顺序指定多个名称和值对参数,如下所示:名称1,值1,…,名称,值

例子:“替换样式”,“删除”删除无效字符。

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

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

输入的前缀字符不以后面的字母开头makeValidName替换指定为字符向量或字符串标量的非字母数字字符。例如,默认情况下,makeValidName将字符作为输入的前缀“*你好”因为,在它替换非字母数字字符后,输入不是以字母(“你好”).但是,如果指定替换样式删除非字母数字字符,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.MakeUniqueString(validValues,{},...namelengthmax)
    validUniqueValues = 'my_Name' 'my_Name' 'my_Name'

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

R2014a中引入