主要内容

matlab.lang.makeunqueStrings.

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

描述

例子

U = matlab.lang.makeUniqueStrings (年代构建独特的字符串或角色向量,U,从输入字符串或字符向量,年代,通过附加下划线和一个数字来重复。

例子

U = matlab.lang.makeUniqueStrings (年代excludedStrings构建在内部独特的字符串或字符向量U关于excludedStrings.的makeUniqueStrings功能不检查excludedStrings对于唯一性。

例子

U = matlab.lang.makeUniqueStrings (年代whichStringsIdx指定的子集年代在整套中制作独特。makeUniqueStrings使元素s(instringsidx)在他们自己和剩余的元素中独特。makeUniqueStrings返回未修改的剩余元素U.当您拥有一个字符串数组或一个字符向量数组,并且需要检查只有一些元素是惟一的时,请使用此语法。

例子

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

例子

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

例子

全部收缩

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

S = {“约翰。”'起诉'“尼克”“约翰。”“露营”“约翰。”'杰森'};u = matlab.lang.makeunqueStrings(S)
你=1 x7单元格列1到6 {'John'} {'ue'} {'nick'} {'john_1'} {'campion'} {'campion'} {'john_2'}第7列{'jason'}

makeUniqueStrings函数将元素3和5中的重复名称附加,带有下划线和递增数字。

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

S = {“约翰。”'起诉'“尼克”“约翰。”“露营”“约翰。”'杰森'};u = matlab.lang.makeunqueStrings(S)
你=1 x7单元格列1到6 {'John'} {'ue'} {'nick'} {'john_1'} {'campion'} {'campion'} {'john_2'}第7列{'jason'}

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

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

makeUniqueStrings不包括“尼克”U而是改变在元素3中发现的第一个重复副本,是“Nick_1”

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

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

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

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

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

前四个元素在U它们之间是独一无二的,在元件5和6中的剩余字符向量中(“测试”“考试”)。或者,您可以使用逻辑阵列而不是一系列线性索引来实现相同的结果:u = matlab.lang.makeunqueStrings(S,[真的真的真的真的假假])或者u = matlab.lang.makeunqueStrings(S,logical([1 1 1 1 0 0]))

附加一个复制“测试”到最后年代并使前四个元素独特。

{结束+ 1}=“测试”
S =1 x7单元格列1到6{“测验”}{“测验”}{“测验”}{‘考试’}{“测验”}{‘考试’}列7{“测验”}
U = matlab.lang.makeunqueStrings(s,1:4)
你=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.makeunqueStrings(S,1:3, 5)
你=1 x4单元格{'sampl'} {'sam_1'} {'sam_2'} {'sampleData'}

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

S = {“一个%的名字”'name_1'“2 _name”};[n,修改] = matlab.lang.makevalidname(s)
N =1 x3单元格{'a_name'} {'name_1'} {'x2_name'}
修改=1x3逻辑阵列1 0 1

makevalidname.没有修改第二个元素。

输入参数

全部收缩

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

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

例子:“dontDuplicateThis”

例子:{“excludeS1”“excludeS2”}

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

例子:WHO

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

如果whichStringsIdx是一个逻辑阵列,当同一位置中的数组元素有值时,检查元素的唯一性真的

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

最大字符串长度U,指定为整数。如果makeUniqueStrings无法制作元素年代独特而不超过maxstringlength.,它返回一个错误。

输出参数

全部收缩

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

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

尖端

  • 确保输入值有效和唯一,使用matlab.lang.makevalidname.matlab.lang.makeunqueStrings.

    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介绍