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没有修改第二个元素。

输入参数

全部折叠

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

名称-值对的观点

指定可选的,以逗号分隔的对名称,值参数。的名字参数name和价值是对应的值。的名字必须出现在引号内。可以按任意顺序指定多个名称和值对参数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.makeUniqueStrings(validValues,{});namelengthmax)
    validValues = 'my_Name' my_Name' my_Name_1' my_Name_2'

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

介绍了R2014a