Main Content

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

num2str

数値を文字配列に変換

説明

s = num2str(A) は、数値配列をその数値を表す文字配列に変換します。出力形式は元の値の大きさによって異なります。num2str は数値を使用してプロット図にラベルやタイトルを付ける場合に役立ちます。

s = num2str(A,precision) は、数値を precision で指定された最大有効桁数で表す文字配列を返します。

s = num2str(A,formatSpec) は、formatSpec で指定した形式を A の全要素に適用します。

メモ

形式を指定した場合、s では A の要素間にスペースは含まれません。スペースを含めるにはスペースを形式に追加します。

すべて折りたたむ

pieps によって返された浮動小数点値を文字ベクトルに変換します。

s = num2str(pi)
s = 
'3.1416'
s = num2str(eps)
s = 
'2.2204e-16'

浮動小数点値の最大有効桁数を指定します。

rng('default')
A = randn([2,2]);
s = num2str(A,3)
s = 2x15 char array
    '0.538     -2.26'
    ' 1.83     0.862'

pi を浮動小数点数として指定された精度で表示します。

formatSpec = '%.2f';
s = num2str(pi,formatSpec)
s = 
'3.14'

入力引数

すべて折りたたむ

入力配列。数値配列として指定します。

データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
複素数のサポート: あり

出力文字列の有効桁数の最大値。正の整数として指定します。

メモ

precision を入力の浮動小数点データ型の精度より大きい値に指定すると、入力値の精度が指定の精度にならない場合があります。結果はコンピューターのハードウェアとオペレーティング システムによって異なります。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

出力フィールドの書式。書式演算子を使用して指定します。formatSpec には通常のテキストおよび特殊文字を含めることもできます。

formatSpec\n などのエスケープ文字を表すリテラル テキストが含まれる場合、num2str はエスケープ文字を変換します。

formatSpec は一重引用符で囲まれた文字ベクトルか、または string スカラーとすることができます。

書式演算子

書式演算子はパーセント記号 % で始まり、変換文字で終わります。変換文字は必須です。オプションとして、% と変換文字の間に識別子、フラグ、フィールド幅、精度およびサブタイプ演算子を指定できます (ここでは読みやすいようにスペースが表示されていますが、実際には演算子の間にスペースは使用できません)。

Schematic of formatting operator characters.

変換文字

次の表では、数値データおよび文字データをテキストとして書式設定するための変換文字を説明します。

値のタイプ変換詳細

整数、符号付き

%d または %i

基数 10

整数、符号なし

%u

基数 10

%o

基数 8 (8 進法)

%x

基数 16 (16 進法)、小文字 af

%X

%x と同じ、大文字 AF

浮動小数点数

%f

固定小数点表記 (小数点以下の桁数の指定には精度演算子を使用)

%e

3.141593e+00 などの指数表現 (小数点以下の桁数の指定には精度演算子を使用)

%E

%e と同じだが、3.141593E+00 のように大文字 (小数点以下の桁数の指定には精度演算子を使用)

%g

%e または %f をコンパクトにしたもので、後続のゼロなし (有効桁数の指定には精度演算子を使用)

%G

%E または %f をコンパクトにしたもので、後続のゼロなし (有効桁数の指定には精度演算子を使用)

文字または文字列

%c

単一の文字

%s

文字ベクトルまたは string 配列。出力テキストのタイプは formatSpec のタイプと同じです。

オプションの演算子

オプションの識別子、フラグ、フィールド幅、精度およびサブタイプ演算子は、出力テキストの書式をさらに細かく定義します。

  • 識別子

    メモ: 関数 sprintf とは異なり、num2str では識別子はサポートされません。

  • フラグ

    '–'

    左揃えします。
    例: %-5.2f
    例: %-10s

    '+'

    常に数値の符号文字 (+ または –) を出力します。
    例: %+5.2f
    テキストを右揃えします。
    例: %+10s

    ' '

    値の前にスペースを 1 つ挿入します。
    例: % 5.2f

    '0'

    値の前にゼロを入れてフィールド幅をパディングします。
    例: %05.2f

    '#'

    選択した数値変換を次のように変更します。

    • %o%x、または %X の場合は、接頭辞 00x、または 0X を出力します。

    • %f%e、または %E の場合は、精度が 0 であっても小数点を出力します。

    • %g または %G の場合は、後続のゼロまたは小数点を削除しないでください。

    例: %#5.0f

  • フィールド幅

    出力する最小文字数。

    例: '%5d'intmax で返される値が出力する最小文字数を超えているため、intmax 2147483647 として出力します。

    出力する文字数がフィールド幅より少ない場合、フラグで特に指定されていない限り、関数 compose は値の前にスペースを追加してフィールド幅までパディングします。

    ただし、関数 num2str はスペースを追加してフィールド幅をパディングしません。

  • 精度

    出力する桁数。

    %f%e または %E

    小数点以下の桁数
    例: '%.4f'pi'3.1416' と出力します

    %g または %G

    有効桁数
    例: '%.4g'pi'3.142' と出力します。

    例: '%6.4f'pi'3.1416' として出力します。

    メモ

    浮動小数点値の精度演算子を入力の数値データ型の精度より大きい値に指定すると、入力値の精度が指定の精度にならない場合があります。結果はコンピューターのハードウェアとオペレーティング システムによって異なります。

  • サブタイプ

    サブタイプ演算子を使用して、浮動小数点値を 8 進数、10 進数または 16 進数の値として出力できます。サブタイプ演算子は、変換文字の直前に指定します。次の表では、サブタイプを使用できる変換を示します。

    入力値の型

    サブタイプと変換文字

    出力値の型

    浮動小数点数

    %bx または %bX
    %bo
    %bu

    16 進数、8 進数または 10 進数の倍精度値
    例: %bxpi400921fb54442d18 と出力します

    %tx または %tX
    %to
    %tu

    16 進数、8 進数または 10 進数の単精度値
    例: %txpi40490fdb と出力します

書式演算子の前後のテキスト

formatSpec では、パーセント記号 % の前や、変換文字の後に追加のテキストを含めることができます。次のテキストを追加できます。

  • 出力する通常のテキスト。

  • 通常のテキストとして入力できない特殊文字。次の表では、formatSpec で特殊文字を表す方法を説明します。

    特殊文字

    表現

    一重引用符

    ''

    パーセント文字

    %%

    バックスラッシュ

    \\

    アラーム

    \a

    バックスペース

    \b

    フォーム フィード

    \f

    改行

    \n

    キャリッジ リターン

    \r

    水平タブ

    \t

    垂直タブ

    \v

    Unicode® 数値を 16 進数 N で表現できる文字

    \xN

    例: num2str('\x5A')'Z' を返す

    Unicode 数値を 8 進数 N で表現できる文字

    \N

    例: num2str('\132')'Z' を返す

書式演算子を使用した変換動作の注意点

  • 数値変換は複素数の実数部のみを出力します。

  • 数値のテキスト変換など、データに適さない変換を指定すると、MATLAB® は指定した変換をオーバーライドし、%e を使用します。

    例: '%s' は、pi3.141593e+00 に変換します。

  • 整数値にテキスト変換 (%c または %s) を適用する場合、MATLAB は有効な文字コードに対応する値を文字に変換します。

    例: '%s' は、[65 66 67]ABC に変換します。

出力引数

すべて折りたたむ

入力配列のテキスト表現。文字配列として返されます。

ヒント

  • num2strformatSpec 入力引数内の位置識別子を受け入れません。たとえば、num2str([14 15],'%2$X %1$o) はエラーを返します。

    位置識別子は、書式演算子が関数の入力引数を処理する順序を指定します。入力配列の要素は指定しません。num2str を呼び出す場合、変換対象の数値をもつ入力引数は 1 つのみです。

  • 無効な書式演算子または特殊文字を指定すると、num2str はその無効な演算子または文字までのすべてのテキストを出力し、残りを破棄します。

    例: formatSpec'value = %z' の場合、%z は書式演算子ではないため、num2str'value =' を出力します。

    例: formatSpec'character \x99999 = %s' の場合、\x99999 は有効な特殊文字ではないため、num2str'character' を出力します。

アルゴリズム

num2str は、formatSpec に空白文字フラグが含まれていたとしても、文字配列から先頭の空白をすべて取り除きます。たとえば、num2str(42.67,'% 10.2f') は、1 行 5 列の文字配列 '42.67' を返します。

拡張機能

バージョン履歴

R2006a より前に導入