Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

string 配列および文字配列内のテキスト

MATLAB® にはテキストの表現方法が 2 つあります。"string 配列" にテキストを格納できます。また、どのバージョンの MATLAB でも文字配列にテキストを格納できます。一般に、文字配列はテキストを "文字ベクトル" として格納するのに使用されます。MATLAB では string は二重引用符で、文字ベクトルは一重引用符で囲んで表示されます。

string 配列を使用したテキストの表現

string データ型を使用して、1 行 n 列の任意の文字のシーケンスを string として保存できます。string を作成するにはテキストを二重引用符で囲みます。

str = "Hello, world"
str = 
"Hello, world"

テキスト "Hello, world" の長さは 12 文字ですが、str 自体は 1 行 1 列の string、つまり "string スカラー" です。string スカラーは、ファイル名、プロット ラベル、または他のテキスト形式の情報を指定するのに使用できます。

string 内の文字数を求めるには、関数 strlength を使用します。

n = strlength(str)
n = 12

テキストに二重引用符が含まれている場合、定義内で 2 つの二重引用符を使用します。

str = "They said, ""Welcome!"" and waved."
str = 
"They said, "Welcome!" and waved."

string の末尾にテキストを追加するには、加算演算子 + を使用します。変数を string に変換できる場合、plus はそれを変換してから追加します。

fahrenheit = 71;
celsius = (fahrenheit-32)/1.8;
tempText = "temperature is " + celsius + "C"
tempText = 
"temperature is 21.6667C"

関数 append を使用してテキストを連結することもできます。

tempText2 = append("Today's ",tempText)
tempText2 = 
"Today's temperature is 21.6667C"

関数 string は、数値、datetime 値、duration 値、categorical 値など、異なる型の入力を変換できます。たとえば、pi の出力を string に変換します。

ps = string(pi)
ps = 
"3.1416"

複数のテキストを 1 つの string 配列に格納できます。配列の各要素には、異なる数の文字をもつ string をパディングせずに格納できます。

str = ["Mercury","Gemini","Apollo";...
       "Skylab","Skylab B","ISS"]
str = 2x3 string
    "Mercury"    "Gemini"      "Apollo"
    "Skylab"     "Skylab B"    "ISS"   

str は 2 行 3 列の string 配列です。string の長さは、関数 strlength を使用して求めることができます。

N = strlength(str)
N = 2×3

     7     6     6
     6     8     3

string 配列は MATLAB および MathWorks® 製品全体でサポートされています。文字配列 (および文字ベクトルの cell 配列) を入力として受け入れる関数は string 配列も受け入れます。

文字ベクトルを使用したテキストの表現

1 行 n 列の文字シーケンスを文字ベクトルとして保存するには、char データ型を使用し、一重引用符で囲みます。

chr = 'Hello, world'
chr = 
'Hello, world'

テキスト 'Hello, world' の長さは 12 文字で、chr はこれを 1 行 12 列の文字ベクトルとして格納します。

whos chr
  Name      Size            Bytes  Class    Attributes

  chr       1x12               24  char               

テキストに一重引用符が含まれている場合は、定義内で一重引用符を 2 つ使用します。

chr = 'They said, ''Welcome!'' and waved.'
chr = 
'They said, 'Welcome!' and waved.'

文字ベクトルの主な用途は 2 つあります。

  • ファイル名やプロット ラベルなど、単一のテキストの指定。

  • 文字を使用してエンコードされているデータの表現。このような場合、個々の文字へのアクセスしやすさが必要となることがあります。

たとえば、DNA 配列を文字ベクトルとして保存できます。

seq = 'GCTAGAATCC';

数値配列にインデックスを付ける場合と同様に、インデックスを付けることで個々の文字や文字のサブセットにアクセスできます。

seq(4:6)
ans = 
'AGA'

他のタイプの配列を連結する場合と同様に、大かっこを使用して文字ベクトルを連結します。

seq2 = [seq 'ATTAGAAACC']
seq2 = 
'GCTAGAATCCATTAGAAACC'

R2019a 以降は、append を使用してテキストを連結することもできます。関数 append は、string 配列、文字ベクトル、文字ベクトルの cell 配列を一貫して扱うので推奨されます。

seq2 = append(seq,'ATTAGAAACC')
seq2 = 
'GCTAGAATCCATTAGAAACC'

string 配列を入力として受け入れる MATLAB 関数は、文字ベクトルと、文字ベクトルの cell 配列も受け入れます。

参考

| | | | | |

関連するトピック