ドキュメンテーション

このページは前リリースの情報です。該当の英語のページはこのリリースで削除されています。

文字配列の作成

文字ベクトルの作成

"文字ベクトル" は、一連の文字を一重引用符で囲んで作成します。

chr = 'Hello, world'
chr =

    'Hello, world'

文字ベクトルは、char 型の 1n 列の配列です。コンピューター プログラミングでは、文字の 1n 列の配列に "文字列" という用語がよく使用されます。ただし、R2016b 以降では、MATLAB®string データ型も提供するため、MATLAB ドキュメンテーションでは 1n 列の文字配列は文字ベクトルと呼ばれます。

whos chr
  Name          Size            Bytes  Class    Attributes

  chr           1x12               24  char               

テキストに一重引用符が含まれている場合は、文字ベクトルを代入するときに、2 つの引用符を含めるようにします。

newChr = 'You''re right'
newChr =

    'You're right'

uint16 などの関数では、文字が対応する数値コードに変換されます。

chrNumeric = uint16(chr)
chrNumeric =

  1×12 uint16 row vector

    72   101   108   108   111    44    32   119   111   114   108   100

関数 char では、整数ベクトルが文字に変換されます。

chrAlpha = char([72 101 108 108 111 44 32 119 111 114 108 100])
chrAlpha =

    'Hello, world'

四角形の文字配列の作成

文字配列は、文字の mn 列の配列で、m は常に 1 であるとは限りません。2 つ以上の文字ベクトルを結合して、1 つの文字配列を作成できます。これは、"連結" と呼ばれます。行列の作成、連結、および拡張では、数値配列の連結について説明しています。数値配列と同様に、文字配列を横または縦のどちらの方向に結合しても新しい文字配列を作成できます。

ただし、mn 列の文字配列を使用せず、文字ベクトルを cell 配列に格納することを推奨します。cell 配列は、さまざまな長さの文字ベクトルを簡単に格納できる柔軟なコンテナーです。

文字ベクトルの垂直方向の結合

文字ベクトルを結合して 2 次元文字配列にするには、大かっこまたは関数 char を使用します。

  • MATLAB の連結演算子 [] を適用します。複数の行はセミコロン (;) で区切ります。各行には、同じ数の文字が含まれなければなりません。たとえば、長さの等しい 3 つの文字ベクトルを結合します。

    devTitle = ['Thomas R. Lee'; ...
                'Sr. Developer'; ...
                'SFTware Corp.']
    
    devTitle =
    
      3×13 char array
    
        'Thomas R. Lee'
        'Sr. Developer'
        'SFTware Corp.'
    

    文字ベクトルの長さが異なる場合は、必要に応じて空白文字を付加します。以下に例を示します。

    mgrTitle = ['Harold A. Jorgensen      '; ...
                'Assistant Project Manager'; ...
                'SFTware Corp.            ']
    
    mgrTitle =
    
      3×25 char array
    
        'Harold A. Jorgensen      '
        'Assistant Project Manager'
        'SFTware Corp.            '
    
  • 関数 char を呼び出します。文字ベクトルの長さが異なると、各行が同じ文字数になるように char によって短い文字ベクトルの末尾に空白文字が付加されます。

    mgrTitle = char('Harold A. Jorgensen', ...
        'Assistant Project Manager', 'SFTware Corp.')
    mgrTitle =
    
      3×25 char array
    
        'Harold A. Jorgensen      '
        'Assistant Project Manager'
        'SFTware Corp.            '
    

文字ベクトルの水平方向の結合

文字ベクトルを結合して 1 つの行ベクトルにするには、大かっこまたは関数 strcat を使用します。

  • MATLAB の連結演算子 [] を適用します。入力文字ベクトルをコンマまたはスペースで区切ります。この方法では、入力配列に含まれる末尾のスペースが保持されます。

    name =    'Thomas R. Lee';
    title =   'Sr. Developer';
    company = 'SFTware Corp.';
    
    fullName = [name ', ' title ', ' company]

    MATLAB は、以下を返します。

    fullName =
    
        'Thomas R. Lee, Sr. Developer, SFTware Corp.'
  • 連結関数 strcat を呼び出します。この方法では、入力に含まれる末尾のスペースが削除されます。たとえば、文字ベクトルを結合して仮想の電子メール アドレスを作成します。

    name   = 'myname   ';
    domain = 'mydomain ';
    ext    = 'com      ';
    
    address = strcat(name, '@', domain, '.', ext)

    MATLAB は、以下を返します。

    address =
    
        'myname@mydomain.com'

文字の識別

文字配列または文字配列内の特定の文字を識別するには、次の関数のいずれかを使用します。

関数説明
ischar入力が文字配列かどうかを判定
isletter入力文字配列にあるすべてのアルファベットを検出
isspace入力文字配列にあるすべての空白文字を検出
isstrprop特定のカテゴリのすべての文字を検出

文字ベクトル内の空白文字を検出します。

chr = 'Find the space characters in this character vector';
%          |   |     |          |  |    |         |
%          5   9    15         26 29   34        44

find(isspace(chr))
ans =

     5     9    15    26    29    34    44

空白文字の扱い

関数 blanks は、空白文字の文字ベクトルを作成します。15 個の空白文字のベクトルを作成します。文字ベクトルは常に一重引用符で囲んで表示されます。

chr = blanks(15)
chr =

    '               '

空白文字ベクトルの中にスペース以外の文字をいくつか挿入します。

chr(6:10) = 'AAAAA'
chr =

    '     AAAAA     '

関数 strjust を使用して、これらの文字の位置を揃えることができます。

chrLeft = strjust(chr,'left')
chrLeft =

    'AAAAA          '
chrRight = strjust(chr,'right')
chrRight =

    '          AAAAA'

deblank を使用して、最後のスペースを削除します。

chrDeblank = deblank(chr)
chrDeblank =

    '     AAAAA'

strtrim を使用して、前後のすべてのスペースを削除します。

chrTrim = strtrim(chr)
chrTrim =

    'AAAAA'

文字配列の拡張

一般に、MathWorks® は、配列の一部を 0 で埋めたり、配列の範囲を超えたインデックスに文字を追加して割り当てることによって、既存の文字配列のサイズを拡張することを推奨いたしません。

参考

| | | | |

関連するトピック