主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

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(年代名称,值には1つ以上の名称,值ペア引数によって指定された追加オプションが含まれます。

N修改) = matlab.lang.makeValidName (___は、逻辑配列修改を返して,変更された要素を示します。この構文では,前述の構文の入力引数のいずれかを使用できます。

すべて折りたたむ

S = {“Item_ #”“价格/单位”“第一订单”“接触”};N = matlab.lang.makeValidName (S)
N =1 x4单元格{' Item__}{‘Price_Unit}{‘x1stOrder}{“接触”}

最初の要素と2番目の要素で,makeValidNameは,無効な文字(/)をアンダースコアに置換しました。3番目の要素は,文字ベクトルが英字で始まらないので,makeValidNameは,それに接頭辞を付加し,空白を削除し,削除された空白の後にある文字を大文字に変換しました。

無効な文字を,それに対応する16進数表現に置換します。

S = {“Item_ #”“价格/单位”“第一订单”“接触”};N = matlab.lang.makeValidName(年代,“ReplacementStyle”十六进制的
N =1 x4单元格{'Item_0x23'} {'Price0x2FUnit'} {'x1stOrder'} {'Contact'}

最初の要素と2番目の要素で,makeValidNameは,無効な文字(/) を、16進数表現に置換しました。3.番目の要素は、文字ベクトルが英字で始まらないので、makeValidNameは,それに接頭辞を付加し,空白を削除し,削除された空白の後にある文字を大文字に変換しました。

無効な文字を削除します。

N = matlab.lang.makeValidName(年代,“ReplacementStyle”“删除”
N =1 x4单元格{'Item_'} {'PriceUnit'} {'x1stOrder'} {'Contact'}

makeValidNameは,無効な文字(/) を削除しました。3.番目の要素は、文字ベクトルが英字で始まらないので、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 '}
修改=1x3逻辑阵列1 0 1

makeValidNameは2番目の要素を変更しませんでした。

入力引数

すべて折りたたむ

入力字符串。文字ベクトル、文字ベクトルの细胞配列または字符串配列として指定します。

名前と値のペアの引数

オプションの名称,值の引数ペアをコンマ区切りで指定します。的名字は引数名で,价值は対応する値です。的名字は引用符で囲まなければなりません。名称1,值1,…,名称,值のように,複数の名前と値のペアの引数を任意の順序で指定できます。

例:“ReplacementStyle”、“删除”は無効な文字を削除します。

置換スタイル。“下划线”“删除”または十六进制的として指定します。この値は,MATLABが英数字以外の文字をどう置換するかを制御します。MATLABはReplacementStyleのすべての値について,空白文字を削除し,空白文字に続く小文字を大文字に変換します。

ReplacementStyle 説明
“下划线”(既定) 英数字でもアンダースコアでもない文字をすべてアンダースコアに置き換えます。“下划线”
十六进制的 英数字でもアンダースコアでもない文字をすべて対応する16進数表記に置き換えます。十六进制的
“删除” 英数字でもアンダースコアでもない文字をすべて削除します。“删除”

makeValidNameが英数字以外の文字を置換した後に,英字で始まらない入力に接頭辞として付ける文字。文字ベクトルまたは字符串スカラーとして指定します。たとえば,既定でmakeValidNameは入力“*你好”に接頭辞として文字を付けます。これは,英数字以外の文字を置換した後の入力が英字で始まらないためです(“_hello”)。ただし,英数字以外の文字を削除する置換スタイルを指定した場合は,makeValidNameは接頭辞として文字を付けません。英数字以外の文字を置換した後の入力は,英字で始まります(“你好”)。

有効な接頭辞は次の条件を満たさなければなりません。

  • 英字で始まる。

  • 英数字とアンダースコアのみを含む。

  • MATLABキーワードではない。

  • 長さがnamelengthmaxの値以下である。

出力引数

すべて折りたたむ

有効なMATLAB識別子。文字ベクトル、文字ベクトルの细胞配列または字符串配列として返されます。出力の次元数は、入力年代と同じです。

変更された要素のインジケーター。入力年代と同じ次元数をもつ論理スカラーまたは逻辑配列として返されます。値が1真正的)の場合,makeValidNameが,対応する位置にある入力を変更したことを示しています。値が0)の場合,makeValidNameは対応する位置にある入力を変更する必要がなかったことを示しています。

ヒント

  • 入力値が必ず有効かつ一意になるようにするため、matlab.lang.makeUniqueStringsmatlab.lang.makeValidNameより後に使用します。

    S = {”我。的名字'“my_Name”“my_Name”}; validValues=matlab.lang.makeValidName(S)validUniqueValues=matlab.lang.MakeUniqueString(validValues,{},...namelengthmax)
    validUniqueValues = 'my_Name' 'my_Name' 'my_Name'

  • 無効な文字の置換をカスタマイズするには,まず,strrepregexprepなどの関数を使用して有効な文字に変換します。たとえば,strrep(年代,“@”,“在”)を使用して,年代“@”文字を“在”に変換します。次に,matlab.lang.makeValidNameを使用して,年代のすべての文字が必ず有効な文字になるようにします。

R2014aで導入