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”,“my_Name”};validValues = matlab.lang.makeValidName(S) validUniqueValues = matlab.lang. makeuniquestring (validValues,{},...namelengthmax)
    validValues = 'my_Name' ' 'my_Name' ' 'my_Name' ' ' validUniqueValues = 'my_Name' ' 'my_Name_1' 'my_Name_2'

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

介绍了R2014a