主要内容

matlab.lang.makeUniqueStrings

从输入字符串构造唯一的字符串

描述

例子

U = matlab.lang.makeUniqueStrings (年代构造唯一的字符串或字符向量,U,从输入字符串或字符向量,年代,通过在重复项后面附加下划线和数字。

例子

U = matlab.lang.makeUniqueStrings (年代excludedStrings构造内部唯一的字符串或字符向量U关于excludedStrings.的makeUniqueStrings函数不检查excludedStrings的独特性。

例子

U = matlab.lang.makeUniqueStrings (年代whichStringsIdx的子集年代使整个系列都独一无二。makeUniqueStrings使元素S (whichStringsIdx)与其他元素相比,它们是独一无二的。makeUniqueStrings返回未修改的其余元素U.当您拥有一个字符串数组或一个字符向量数组,并且需要检查只有一些元素是惟一的时,请使用此语法。

例子

U = matlab.lang.makeUniqueStrings (年代___maxStringLength指定最大长度,maxStringLength的元素U.如果makeUniqueStrings不能在年代独特的不超过maxStringLength,它返回一个错误。您可以将此语法与前面语法的任何输入参数一起使用。

例子

U修改) = matlab.lang.makeUniqueStrings (___返回一个逻辑数组,修改,指示修改后的元素。

例子

全部折叠

创建一个名称单元格数组,并使每个元素惟一。

S = {“约翰。”“苏”“尼克”“约翰。”剪秋罗属植物的“约翰。”“杰森”};U = matlab.lang.makeUniqueStrings (S)
U =1 x7单元格列1到6{“约翰”}{‘苏’}{“尼克”}{‘John_1}{剪秋罗属植物的}{‘John_2}列7{“杰森”}

makeUniqueStrings函数在元素3和5中的重复名称后面加上下划线和递增数。

在不指定排除值的情况下,将字符向量设为inU独一无二的。

S = {“约翰。”“苏”“尼克”“约翰。”剪秋罗属植物的“约翰。”“杰森”};U = matlab.lang.makeUniqueStrings (S)
U =1 x7单元格列1到6{“约翰”}{‘苏’}{“尼克”}{‘John_1}{剪秋罗属植物的}{‘John_2}列7{“杰森”}

指定字符向量,“尼克”,应从输出中排除。

U = matlab.lang.makeUniqueStrings(年代,“尼克”
U =1 x7单元格第6列至第7列{'John_2'} {'Jason'}第5列至第5列{'John'} {'Sue'} {'Nick_1'} {'John_1'} {'Campion'}

makeUniqueStrings不包括“尼克”U而是将元素3中的第一个副本修改为be“Nick_1”

从唯一单元格数组中排除工作区变量。

苏= 42;U = matlab.lang.makeUniqueStrings(年代,谁)
U =1 x7单元格第6列至第7列{'John_2'} {'Jason'}第1列至第5列{'John'} {'Sue_1'} {'Nick'} {'John_1'} {'Campion'}

“苏”存在于工作空间中,makeUniqueStrings通过添加下划线和数字使此字符向量唯一。

创建一个字符向量数组,并使前四个元素唯一。

S = {“测试”“测试”“测试”“考试”“测试”“考试”};U = matlab.lang.makeUniqueStrings(年代,1:4)
U =1 x6单元格列1到5{‘quiz_1}{‘quiz_2}{‘quiz_3}{‘exam_1}{“测验”}列6{‘考试’}

前四个元素在U它们之间以及元素5和6中的其余字符向量(“测试”“考试”).或者,你可以使用一个逻辑数组代替一系列线性索引来实现相同的结果:U = matlab.lang.makeUniqueStrings(年代,[真正的真正的真正的真正的假假])U = matlab.lang.makeUniqueStrings(年代,logical([1 1 1 1 0 0]))

附加一个复制“测试”到最后年代让前四种元素独一无二。

{结束+ 1}=“测试”
S =1 x7单元格列1到6{“测验”}{“测验”}{“测验”}{‘考试’}{“测验”}{‘考试’}列7{“测验”}
U = matlab.lang.makeUniqueStrings(年代,1:4)
U =1 x7单元格第6列至第7列{'exam'} {'quiz'}

这些字符向量makeUniqueStrings检查本身和其余元素之间仍然是唯一的。自makeUniqueStrings不检查元素4之后的任何元素,保留重复的字符向量。

创建数组年代其中前三个元素是唯一的,每个字符串的最大长度是5。

S = {“sampleData”“sampleData”“sampleData”“sampleData”};U = matlab.lang.makeUniqueStrings(年代,1:3, 5)
U =1 x4单元格{'sampl'} {'sam_1'} {'sam_2'} {'sampleData'}

第一个元素被截断为5个字符。第二个和第三个元素被截断为3个字符makeUniqueStrings添加下划线和数字,但仍然不超过5个字符。

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

输入参数

全部折叠

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

要排除的字符向量U,指定为字符向量、字符向量的单元格数组或字符串数组。

例子:“dontDuplicateThis”

例子:{“excludeS1”“excludeS2”}

例子:[" excludeThis”“要求”)

例子:

的子集年代使其在整个集合中唯一,指定为一系列线性索引或具有相同大小和形状的逻辑数组年代.如果有副本年代,makeUniqueStrings函数仅修改whichStringsIdx

如果whichStringsIdx是一个逻辑数组,当数组元素在相同位置的值为真正的

例子:1:5逻辑([1 0 1])(真的假的真的)

字符串的最大长度U,指定为整数。如果makeUniqueStrings不能在年代独特的不超过maxStringLength,它返回一个错误。

输出参数

全部折叠

唯一的字符串,返回为字符向量、字符向量的单元格数组或字符串数组。输出与输入具有相同的维度,年代

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

提示

  • 要确保输入值有效且唯一,请使用matlab.lang.makeValidName之前matlab.lang.makeUniqueStrings

    S = {”我。名字的“my_Name”“my_Name”};1 .如果你的应用程序中包含了matlab.lang.makeUniqueStrings(validValues,...{}, namelengthmax)
    my_Name = 'my_Name', my_Name = 'my_Name', my_Name = 'my_Name', my_Name = 'my_Name'

介绍了R2014a