Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

string

説明

MATLAB® では、"string 配列" を使用してテキストを表現できます。string 配列の各要素は、文字のシーケンスを格納します。このシーケンスは、"yes""no" などパディングなしの異なる長さをもつことができます。1 つの要素しかない string 配列は、"string スカラー" とも呼ばれます。

標準の配列演算を使用して string 配列のインデックス付け、形状変更、連結ができ、+ 演算子を使用してテキストを追加できます。string 配列が数値を表す場合、関数 double を使用してこれを数値配列に変換できます。

作成

テキストを二重引用符で囲むことで string スカラーを作成できます。

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

string 配列を作成するには、数値を数値配列に連結するのと同様に、大かっこを使用して string スカラーを連結します。

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

以下に説明するように、関数 string を使用して異なるデータ型の変数を string 配列に変換することもできます。

説明

str = string(A) は、入力配列を string 配列に変換します。たとえば、A が数値ベクトル [1 20 300] の場合、str は同じサイズの string 配列 ["1" "20" "300"] になります。

str = string(A, dateFmt) で、Adatetime または duration 配列であり、"HH:mm:ss" などの指定された形式を適用します。さらに、"en_US" などのロケールを個別の入力として指定できます。

入力引数

すべて展開する

入力配列。A のデータ型によって、stringA を string 配列に変換する方法が決定します。

入力型

変換のメモ

サンプル入力

サンプル出力

char

各行が string スカラーになります。

A が空 ('') の場合、出力は文字を含まない string スカラー ("") になります。

1×3 char array
    'foo'

1×1 string array
    "foo"
2×3 char array
    'foo'
    'bar'
2×1 string array
    "foo"
    "bar"

cell 配列

cell 配列のすべての要素が 1 行 1 列の string に変換可能でなければなりません。

{137,'foo'}

["137" "foo"]

categorical 配列

出力 string は A の各要素に対応するカテゴリ名になります。

1x3 categorical array
    red    green    blue
1x3 string array
    "red"    "green"    "blue"

数値配列

出力の形式と精度は、compose%g を使用する場合と同じになります。

A が空 ([]) の場合、出力は 0 行 0 列の空の string 配列になります。

ASCII または Unicode のポイントに変換するには、charを使用します。

[137 3.1e-3 8.5e-6]

["137" "0.0031" "8.5e-06"]

datetime 配列

形式とロケールを指定するには、dateFmt を参照してください。

datetime(2020,6,1)

"01-Jun-2020"

logical 配列

関数 logical は string の入力を受け入れないため、変換は一方向になります。

logical([0 1])

["false" "true"]

NaNNaT および <undefined> categorical 値などの変換された欠損値は、<missing> として表示されます。

日付の形式およびロケール。個々の文字ベクトルまたは string スカラーとして指定します。A 入力の型は datetimeduration または calendarDuration でなければなりません。

形式を指定しない場合、string は、AFormat プロパティにある値を使用します。ロケールのみを指定するには、形式のプレースホルダーとして空の配列 ([]) を使用します。

例: string(A, "yyyy-MM-dd")

例: string(A, "yyyy-MM-dd","en_US")

例: string(A, [],"en_US")

サポートされる形式は A のデータ型によって異なります。

  • datetime の形式は、"yyyy-MMM-dd HH:mm:ss.SSS" のように単位と区切り記号を組み合わせて指定できます。詳細については、datetime 配列の Format プロパティを参照してください。

  • duration の形式は、ydhms のいずれか 1 文字か、次のいずれかの組み合わせになります。

    • "dd:hh:mm:ss"

    • "hh:mm:ss"

    • "mm:ss"

    • "hh:mm"

    • 上記のいずれかに秒の小数部を表す文字 S (最大 9 桁) を加えた "hh:mm:ss.SSSS" のような形式

  • calendarDuration の形式は、文字 yqmwdt"ym" のように大きい単位から小さい単位の順に組み合わせて指定できます。duration および calendarDuration の形式の詳細については、日付と時刻の表示形式の設定を参照してください。

ロケールは、月の名前などの日付と時刻の特定成分を表現するために使用する言語に影響します。有効な値は次のとおりです。

  • "system"。システムのロケールを使用します。

  • xx_YY の形式の文字ベクトル。xx は ISO 639-1 で定義された小文字 2 文字の言語コードで、YY は ISO 3166-1 alpha-2 で定義された大文字の国コードです。サンプル値については、関数 datetime の名前と値の引数 Localeを参照してください。

出力引数

すべて展開する

出力配列。string 配列として返されます。

MATLAB は、UTF-16 エンコードを使用してすべての文字を Unicode® 文字として格納します。Unicode の詳細については、Unicode を参照してください。

すべて折りたたむ

string 内の一意の単語を検索するには、string を空白文字で分割して、関数 unique を呼び出します。

まず、string スカラーを作成します。

str = "A horse! A horse! My kingdom for a horse!"
str = 
"A horse! A horse! My kingdom for a horse!"

感嘆符を削除します。

str = erase(str,"!")
str = 
"A horse A horse My kingdom for a horse"

str 内のすべての文字を小文字に変換します。

str = lower(str)
str = 
"a horse a horse my kingdom for a horse"

関数 split を使用して、str を空白文字で分割します。split は空白文字を破棄し、結果を string 配列として返します。

str = split(str)
str = 9x1 string
    "a"
    "horse"
    "a"
    "horse"
    "my"
    "kingdom"
    "for"
    "a"
    "horse"

関数 unique を使用して str 内の一意の単語を検索します。

str = unique(str)
str = 5x1 string
    "a"
    "for"
    "horse"
    "kingdom"
    "my"

A = 'Four score and seven years ago'
A = 
'Four score and seven years ago'
str = string(A)
str = 
"Four score and seven years ago"

str には A と同じ文字が含まれます。ただし、A は文字ベクトルですが、str は string スカラーです。

c = size(A)
c = 1×2

     1    30

s = size(str)
s = 1×2

     1     1

str 内の文字数を返すには、関数 strlength を使用します。

n = strlength(str)
n = 30

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

A = {'Mercury','Gemini','Apollo';...
     'Skylab','Skylab B','ISS'}
A = 2x3 cell
    {'Mercury'}    {'Gemini'  }    {'Apollo'}
    {'Skylab' }    {'Skylab B'}    {'ISS'   }

str = string(A)
str = 2x3 string
    "Mercury"    "Gemini"      "Apollo"
    "Skylab"     "Skylab B"    "ISS"   

str の最初の行の 2 番目の要素にアクセスするには、小かっこを使用してインデックス付けをします。数値配列の要素にアクセスする場合と同様に、行列のインデックスを使用して string 配列の文字列にアクセスできます。

str(1,2)
ans = 
"Gemini"

3 列目にアクセスします。

str(:,3)
ans = 2x1 string
    "Apollo"
    "ISS"

A = [77 65 84 76 65 66]
A = 1×6

    77    65    84    76    65    66

str = string(A)
str = 1x6 string
    "77"    "65"    "84"    "76"    "65"    "66"

str は string 配列で、その各要素は A からの数値を表します。string は、関数 char が行うように数値を ASCII または Unicode® 値として扱わないことに注意してください。

各要素が数値を表す string 配列を作成します。string 配列を数値配列に変換するには、関数 double を使用します。

str = ["256","3.1416","8.9e-3"]
str = 1x3 string
    "256"    "3.1416"    "8.9e-3"

X = double(str)
X = 1×3

  256.0000    3.1416    0.0089

入力引数が string 配列の場合、関数 double は各要素を浮動小数点値の表現として扱います。ただし、入力が文字配列の場合、double は代わりに各文字をその Unicode® 値を表す数値に変換します。

代替方法として、関数 str2double を使用します。入力引数が string 配列、文字ベクトル、または文字ベクトルの cell 配列の場合、str2double が適しています。

Y = str2double(str)
Y = 1×3

  256.0000    3.1416    0.0089

C = '2.7183';
Z = str2double(C)
Z = 2.7183

duration 配列を string に変換します。一般的なデータ型から string への変換に関する詳細については、datetime 配列、数値およびテキストの間の変換を参照してください。

duration 配列を作成します。

D = hours(23:25) + minutes(8) + seconds(1.2345)
D = 1x3 duration
   23.134 hr   24.134 hr   25.134 hr

D を string 配列に変換します。

str = string(D)
str = 1x3 string
    "23.134 hr"    "24.134 hr"    "25.134 hr"

str は要素ごとに 1 つの duration 値がある string 配列です。strD と同じサイズです。

str の duration 値の形式を指定します。

str = string(D,'hh:mm')
str = 1x3 string
    "23:08"    "24:08"    "25:08"

ヒント

  • string 配列内にテキストを作成および操作する関数の一覧については、文字と文字列を参照してください。

  • 入力引数がオブジェクトである場合、そのオブジェクトを string として表す string メソッドを実装するクラスに属していなければなりません。

  • char 配列を数値型に変換すると、対応する Unicode コード値の配列が生成されます。string 内のテキストはこのように変換されません。単一の数値を表さない string を double に変換すると、NaN の結果が生成されます。詳細については、Unicode と ASCII の値を参照してください。

拡張機能

R2016b で導入