主要内容

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}{“接触”}

在第一和第二个元素,makeValidName取代了无效字符(#/),用十六进制表示。在第三个元素,makeValidName添加一个前缀,因为特征向量不以字母开头,删除空的空间,资本化后的字符删除空间。

删除无效字符。

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

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、修改]= matlab.lang.makeValidName (S)
N =1 x3单元格{' a_name} {‘name_1} {' x2_name '}
修改=1 x3逻辑阵列1 0 1

makeValidName没有修改第二个元素。

输入参数

全部折叠

输入字符串,指定为一个特征向量,单元阵列的特征向量,或字符串数组。

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

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

更换风格,指定为“下划线”,“删除”,或十六进制的。值控制MATLAB取代nonalphanumeric字符。所有的值ReplacementStyleMATLAB删除空白字符和小写字母开头空格后更改为大写。

ReplacementStyle价值 描述
“下划线”(默认) 替换所有不#字符或下划线为下划线。“下划线”
十六进制的 替换每个字符不是一个字母数字或下划线,对应的十六进制表示。十六进制的
“删除” 不#删除所有字符或下划线。“删除”

前缀字符输入,不以字母开头makeValidName取代nonalphanumeric角色,指定为一个特征向量或字符串标量。例如,在默认情况下,makeValidName一个输入前缀字符“*你好”因为,它取代nonalphanumeric字符后,输入不以字母开头(“_hello”)。然而,如果你指定一个替代风格删除nonalphanumeric字符,makeValidName没有前缀字符。之后它取代nonalphanumeric字符,输入始于信(“你好”)。

一个有效的前缀必须满足下列条件。

  • 从字母开始。

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

  • 不是一个MATLAB关键字。

  • 不超过的价值namelengthmax

输出参数

全部折叠

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

修改元素的指标,作为逻辑标量或数组并返回相同数量的维度作为输入,年代。的值1(真正的)表明,makeValidName修改输入在相应的位置。的值0()表明,makeValidName不需要修改输入在相应的位置。

提示

  • 确保输入值是有效的和独特的,使用matlab.lang.makeUniqueStringsmatlab.lang.makeValidName

    S = {“my.Name”,“my_Name”,“my_Name”};validValues = matlab.lang.makeValidName (S) validUniqueValues = matlab.lang.makeUniqueStrings (validValues, {},namelengthmax)
    validValues = ' my_Name ' ' my_Name ' ' my_Name validUniqueValues =“my_Name”“my_Name_1”“my_Name_2”

  • 定制一个无效的字符替换,首先使用等功能strrepregexprep转换为有效字符。例如,转换“@”字符年代“在”使用strrep(年代,“@”,“在”)。然后,用matlab.lang.makeValidName确保所有的字符年代是有效的。

版本历史

介绍了R2014a