matlab.lang.makeUniqueStrings

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

描述

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

U = matlab.lang.makeUniqueStrings(小号excludedStrings构造内部唯一的字符串或字符向量ü并且相对于excludedStrings。该makeUniqueStrings函数未检查excludedStrings的独特性。

U = matlab.lang.makeUniqueStrings(小号whichStringsIdx的子集小号使整个系列独一无二。makeUniqueStrings使得元素S (whichStringsIdx)它们之间和相对于其他元素来说是唯一的。makeUniqueStrings返回中未修改的其余元素ü。当你有一个字符串数组或特征向量的阵列,并且需要检查,只有一些元素是唯一使用此语法。

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

[ü修改] = matlab.lang.makeUniqueStrings(___返回一个逻辑阵列,修改,表示修改的元素。

例子

全部折叠

创建名称的单元阵列,使每个元素独一无二的。

S = {'约翰'“苏”'缺口''约翰'剪秋罗属植物的'约翰'“杰森”};U = matlab.lang.makeUniqueStrings (S)
U =1X7细胞列1到6{“约翰”}{‘苏’}{“尼克”}{‘John_1}{剪秋罗属植物的}{‘John_2}列7{“杰森”}

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

如果不指定排除的值,使该字符向量ü独特。

S = {'约翰'“苏”'缺口''约翰'剪秋罗属植物的'约翰'“杰森”};U = matlab.lang.makeUniqueStrings (S)
U =1X7细胞列1到6{“约翰”}{‘苏’}{“尼克”}{‘John_1}{剪秋罗属植物的}{‘John_2}列7{“杰森”}

指定字符向量,'缺口',应排除的输出。

U = matlab.lang.makeUniqueStrings(年代,'缺口'
U =1X7细胞列1至5 { '约翰'} { '苏'} { 'Nick_1'} { 'John_1'} { '坎皮恩'}列6至7 { 'John_2'} { '杰森'}

makeUniqueStrings排除'缺口'ü并将第一个副本(在元素3中)修改为'Nick_1'

排除从唯一单元阵列的工作区的变量。

苏= 42;U = matlab.lang.makeUniqueStrings(年代,谁)
U =1X7细胞列1至5 { '约翰'} { 'Sue_1'} { '尼克'} { 'John_1'} { '坎皮恩'}列6至7 { 'John_2'} { '杰森'}

以来“苏”存在于工作区中,makeUniqueStrings使得通过附加下划线和数字特有的此字符向量。

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

S = {'测验''测验''测验''考试''测验''考试'};U = matlab.lang.makeUniqueStrings(年代,1:4)
U =1X6细胞列1至5 { 'quiz_1'} { 'quiz_2'} { 'quiz_3'} { 'exam_1'} { '测验'}第6列{ '考试'}

在第一四个元素ü是唯一的,以及元素5和元素6中剩余的字符向量('测验''考试')。或者,您可以使用逻辑数组而不是一系列线性索引,以实现相同的结果:U = matlab.lang.makeUniqueStrings(S,[真真真真假假])U = matlab.lang.makeUniqueStrings(S,逻辑([1 1 1 1 0 0]))

附加重复'测验'到的端部小号并使前四个元素唯一。

Š{端+ 1} ='测验'
S =1X7细胞列1至6 { '测验'} { '测验'} { '测验'} { '考试'} { '测验'} { '考试'}第7列{ '测验'}
U = matlab.lang.makeUniqueStrings(年代,1:4)
U =1X7细胞第6列到第7列{'exam'} {'quiz'}

该特征向量是makeUniqueStrings检查仍然是彼此之间及剩余元件之间唯一的。以来makeUniqueStrings不检查元素4之后的任何元素,重复的字符向量仍然存在。

小号其中前三个元素是唯一的,每个字符串的最大长度为5。

S = {'样本数据''样本数据''样本数据''样本数据'};U = matlab.lang.makeUniqueStrings(S,1:3,5)
U =1×4电池{ 'SAMPL'} { 'sam_1'} { 'sam_2'} { '的sampleData'}

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

S = {'一个名字'“name_1”'2_name'};[N,修改]= matlab.lang.makeValidName(S)
N =1×3单元{' a_name}{‘name_1} {' x2_name '}
修改=1 x3逻辑阵列1 0 1

makeValidName没有修改的第二个元素。

输入参数

全部折叠

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

要排除的字符向量ü,指定为字符向量,特征向量的单元阵列中,或字符串数​​组。

例子:'dontDuplicateThis'

例子:{ 'excludeS1' 'excludeS2'}

例子:[ “excludeThis” “andThis”]

例子:

子集小号作为线性索引的范围或作为具有相同大小和形状的逻辑数组指定的小号。如果有重复的小号中,makeUniqueStrings功能只修改那些由指定whichStringsIdx

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

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

中字符串的最大长度ü,指定为整数。如果makeUniqueStrings不能使元素小号独特的不超过maxStringLength,它返回一个错误。

输出参数

全部折叠

唯一的字符串,返回作为字符向量,特征向量的单元阵列中,或字符串数​​组。的输出具有相同的尺寸的输入,小号

改性元素,返回作为逻辑标量或阵列的指示符,并且具有相同的尺寸的输入,小号。的价值1真正的)表示makeUniqueStrings修改相应位置的元素。的价值0)表示makeUniqueStrings并不需要修改的元素在相应的位置。

提示

  • 要确保输入值是有效的和惟一的,请使用matlab.lang.makeValidName之前matlab.lang.makeUniqueStrings

    S = {'我的名字''我的名字''我的名字'};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'

介绍了R2014a