ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

文字配列の作成

文字ベクトルの作成

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

chr = 'Hello, world';

文字ベクトルは、char 型の 1n 列の配列です。コンピューター プログラミングでは、文字の 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 =

     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 つの文字配列を作成できます。これは、"連結" と呼ばれます。「行列の連結」の節では、数値配列の連結について説明してあります。数値配列と同様に、文字配列を横または縦のどちらの方向に結合しても新しい文字配列を作成できます。

あるいは、文字ベクトルを結合してセル配列にすることもできます。セル配列は、さまざまな長さの文字ベクトルを簡単に結合できる柔軟なコンテナーです。

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

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

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

    devTitle = ['Thomas R. Lee'; ...
                'Sr. Developer'; ...
                'SFTware Corp.'];
    

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

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

    mgrTitle = char('Harold A. Jorgensen', ...
        'Assistant Project Manager', 'SFTware Corp.');

    関数 char は、325 列の文字配列 mgrTitle を作成します。

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

文字ベクトルを結合して 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 '|']
ans =

|               |

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

chr(6:10) = 'AAAAA';
['|' chr '|']
ans =

|     AAAAA     |

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

chrLeft = strjust(chr,'left');
['|' chrLeft '|']
ans =

|AAAAA          |
chrRight = strjust(chr,'right');
['|' chrRight '|']
ans =

|          AAAAA|

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

chrDeblank = deblank(chr);
['|' chrDeblank '|']
ans =

|     AAAAA|

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

chrTrim = strtrim(chr);
['|' chrTrim '|']
ans =

|AAAAA|

文字配列の拡大

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

この情報は役に立ちましたか?