数値のテキストへの変換
この例では、数値をテキストに変換し、より大きいテキストに追加する方法を説明します。たとえば、ラベルまたはタイトルをプロットに追加し、プロットの特性を説明する数値をラベルに含める場合などです。
string への変換
ある数値を、それを表す string に変換するには、関数 string
を使用します。
str = string(pi)
str = "3.1416"
関数 string
は、数値配列を、同じサイズの string 配列に変換します。
A = [256 pi 8.9e-3]; str = string(A)
str = 1x3 string
"256" "3.141593" "0.0089"
関数 compose
を使用して、出力テキストの形式を指定できます。この関数は精度、フィールド幅および指数表記の書式指定子を受け入れます。
str = compose("%9.7f",pi)
str = "3.1415927"
入力が数値配列の場合、compose
は string 配列を返します。指数表記を使用して数値を表す string 配列を返します。
A = [256 pi 8.9e-3];
str = compose("%5.2e",A)
str = 1x3 string
"2.56e+02" "3.14e+00" "8.90e-03"
string への数値の追加
テキストと数値を組み合わせる最もシンプルな方法は、plus
演算子 (+
) を使用することです。この演算子は、他のオペランドが string であれば自動的に数値を string に変換します。
たとえば、正弦波をプロットします。波の周波数を計算し、その値を表す string をプロットのタイトルに追加します。
X = linspace(0,2*pi); Y = sin(X); plot(X,Y) freq = 1/(2*pi); str = "Sine Wave, Frequency = " + freq + " Hz"
str = "Sine Wave, Frequency = 0.15915 Hz"
title(str)
場合によっては、既存のテキストが文字ベクトル、または文字ベクトルの cell 配列に格納されています。ただし、plus
演算子は、他のオペランドが string であれば自動的にこれらのデータ型も string に変換します。数値をこれらのデータ型と組み合わせるには、まず数値を string に変換してから、plus
を使用してテキストを組み合わせます。
str = 'Sine Wave, Frequency = ' + string(freq) + {' Hz'}
str = "Sine Wave, Frequency = 0.15915 Hz"
文字コード
データに Unicode® 値を表す整数が含まれている場合は、関数 char
を使用してそれらの値を対応する文字に変換します。この出力は文字ベクトルまたは文字配列です。
u = [77 65 84 76 65 66]; c = char(u)
c = 'MATLAB'
Unicode 値を変換すると、テキストに特殊文字も含めることができます。たとえば、度記号の Unicode 値は 176 です。char(176)
を string に追加するには、plus
を使用します。
deg = char(176); temp = 21; str = "Temperature: " + temp + deg + "C"
str = "Temperature: 21°C"
16 進数値と 2 進数値
テキストを使用するか、"リテラル" を使用することにより、コード内で 16 進数や 2 進数を表すことができます。推奨される表現方法は、リテラルとして記述することです。16 進数リテラルと 2 進数リテラルはそれぞれ、接頭辞 0x
と 0b
を使用して記述できます。ただし、そのような値は、関数 dec2hex
または dec2bin
を使用して表すと便利な場合があります。
たとえば、2 進数値でビットを設定します。リテラルを使用して 2 進数値を指定した場合、その数値は整数として保存されます。いずれかのビットを設定後、関数 dec2bin
を使用して、新しい 2 進数値をテキストとして表示します。
register = 0b10010110
register = uint8
150
register = bitset(register,5,0)
register = uint8
134
binStr = dec2bin(register)
binStr = '10000110'
参考
dec2bin
| dec2hex
| char
| string
| compose
| plus