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

文字ベクトルの cell 配列

文字ベクトルの cell 配列に変換

文字ベクトルから文字配列を作成する場合は、すべてのベクトルの長さを同じにしなければなりません。このため、文字ベクトルの長さを揃えるように後ろに空白文字を追加しなければならない場合があります。ただし、MATLAB® 配列の別のタイプである cell 配列では、このようなパディングを行わなくてもサイズやタイプの異なるデータを保持することができます。"文字ベクトルの cell 配列" は、各セルに文字ベクトルが含まれる cell 配列です。文字ベクトルの cell 配列は、柔軟な方法でさまざまな長さの文字ベクトルを格納します。

"string の cell 配列" というフレーズはこのような配列を説明するために頻繁に使用されてきましたが、こうした cell 配列には string ではなく文字ベクトルが保持されるため、このフレーズは正確ではありません。R2016b 以降は、MATLAB はテキストを格納する別の方法として string 配列 を提供しています。string データ型をもつ変数を作成する場合、その変数を cell 配列ではなく string 配列に格納します。詳細については、文字配列または string 配列を使用したテキストの表現を参照してください。

文字配列を、文字ベクトルの cell 配列に変換します。各行が同じ文字数になるように、data にはスペースが付加されています。cellstr を使用して、文字配列を変換します。

data = ['Allison Jones';'Development  ';'Phoenix      '];
celldata = cellstr(data)
celldata =

  3×1 cell array

    {'Allison Jones'}
    {'Development'  }
    {'Phoenix'      }

data313 列の文字配列ですが、celldata31 列の文字ベクトルの cell 配列です。また、cellstr は、data の行の末尾にある空白を取り除いています。

関数 iscellstr によって、入力引数が文字ベクトルの cell 配列かどうかが判定されます。celldata の場合は、logical 1 (true) が返されます。

iscellstr(celldata)
ans =

  logical

   1

char を使用して、空白を追加した文字配列に戻すことができます。

chr = char(celldata)
chr =

  3×13 char array

    'Allison Jones'
    'Development  '
    'Phoenix      '

cell 配列の詳細は、cell 配列のデータへのアクセスを参照してください。

文字ベクトルの cell 配列のための関数

次の表に、文字ベクトルの cell 配列で使用する MATLAB 関数をまとめます。

関数

説明

cellstr

文字配列を文字ベクトルの cell 配列に変換

char

文字ベクトルの cell 配列を文字配列に変換

string

R2016b より、文字ベクトルの cell 配列を string 配列に変換します。

deblank

文字配列の最後にある空白を削除

iscellstr

文字配列の cell 配列の場合、true を返す

sort

要素を昇順または降順に並べ替え

strcat

文字配列または文字配列の cell 配列を連結

strcmp

文字配列または文字配列の cell 配列を比較

次の set 関数も、文字ベクトルの cell 配列に使用できます。

関数

説明

intersect

2 つのベクトルの共通部を設定

ismember

集合のメンバーを検出

setdiff

2 つのベクトルの差集合を返す

setxor

2 つのベクトルの排他的論理和を設定

union

2 つのベクトルの和集合を設定

unique

ベクトルの一意の要素を設定