ドキュメンテーション

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

テキストの比較

文字配列とサブ配列を比較する方法はいくつかあります。

これらの関数は、文字配列および文字ベクトルのセル配列のどちらにも機能します。

文字配列が等しいかどうかを比較

次の 4 つの関数のいずれかを使用して、2 つの入力文字配列が同一かどうかを判定することができます。

  • strcmp は、2 つの文字配列が同一かどうかを判定します。

  • strncmp は、2 つの文字配列の最初の n 文字が同一かどうかを判定します。

  • strcmpistrncmpi は、大文字と小文字の区別をしないこと以外は、strcmpstrncmp と同じです。

次の 2 つの文字ベクトルを考えてみましょう。

chr1 = 'hello';
chr2 = 'help';

chr1chr2 は同一ではないため、strcmp を呼び出すと論理値 0 (false) が返されます。以下に例を示します。

C = strcmp(chr1,chr2)  
C =
    0

    メモ:   C 言語のプログラマにとって、これは MATLAB® 関数 strcmp と C 言語の関数 strcmp() との重要な違いです。C 言語では、2 つの入力が等しい場合は 0 が返されます。

chr1chr2 の最初の 3 文字は同一であるため、3 以下の任意の値と共に strncmp を呼び出すと、1 が返されます。

C = strncmp(chr1, chr2, 2)
C =
    1

これらの関数は、文字ベクトルのセル配列でセル単位に機能します。次の 2 つの文字ベクトルのセル配列を考えてみましょう。

A = {'pizza'; 'chips'; 'candy'};
B = {'pizza'; 'chocolate'; 'pretzels'};

ここで、テキスト比較関数を使用します。

strcmp(A,B)
ans =
    1
    0
    0
strncmp(A,B,1)
ans =
    1
    1
    0

演算子を使用した等価性の比較

MATLAB 関係演算子は、文字配列に使用できます (比較する配列の次元が等しいか、一方がスカラーである場合)。たとえば、等値演算子 (==) を使用して、2 つの文字ベクトルのどの文字が一致しているかを判定できます。

A = 'fate';
B = 'cake';

A == B
ans =
    0   1   0   1

関係演算子のすべて (>>=<<===~=) では、対応する文字の値が比較されます。関係演算子の詳細については、「関係演算」を参照してください。

文字配列内の文字の分類

文字配列内の文字を分類するには、次の 3 つの関数があります。

  1. isletter は、文字がアルファベット文字かどうかを判断します。

  2. isspace は、文字が空白 (ブランク、タブ、改行) かどうかを判断します。

  3. isstrprop は、文字配列内の文字を確認し、指定した次のような分類と一致するかどうかを調べます。

    • アルファベット

    • 英数字

    • 小文字または大文字

    • 10 進数の桁

    • 16 進数の桁

    • 制御文字

    • グラフィックス文字

    • 句読点

    • 空白文字

たとえば、chr という名前の文字ベクトルを作成します。

chr = 'Room 401';

isletter によって、各文字を調べ、chr と同じ長さの出力ベクトルを作成します。

A = isletter(chr)
A = 
    1   1   1   1   0   0   0   0

chr の最初 4 文字はアルファベット文字であるため、A の最初の 4 要素は論理値 1 (true) です。

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