主要内容

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中附加下划线和递增数字的重复名称。

在没有指定排除值的情况下,使字符向量在U独一无二的。

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

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

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

makeUniqueStrings不包括“尼克”U并将在元素3中找到的第一个副本修改为“Nick_1”

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

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

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

创建一个字符向量数组,只有前四个元素是唯一的。

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

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

附加一个副本“测试”在结尾年代让前四个元素是唯一的。

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

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

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

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

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

创建一个单元格数组的名称,并使每个元素唯一。输出修改显示输入的哪些元素已被修改。

S = [“约翰。”“苏”“尼克”“约翰。”“剪秋罗属植物”“约翰。”“杰森”];[U, modified] = matlab.lang.makeUniqueStrings(S)
U =1 x7字符串"约翰" "苏" "尼克" "John_1" "坎皮恩" "John_2" "杰森"
修改=1x7逻辑阵列0 0 0 1 0 10 0

输入参数

全部折叠

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

要排除的字符向量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”};validValues = matlab.lang.makeValidName(S) validUniqueValues = matlab.lang.makeUniqueStrings{}, namelengthmax)
    validValues = 'my_Name' 'my_Name' 'my_Name' 'my_Name' ' validUniqueValues = 'my_Name' 'my_Name_1' 'my_Name_2' '

版本历史

在R2014a中引入