MATLAB/formatSpec(データフィールドの形式)

フォーマットについてのまとめ.忘れやすいので作成した.(随時更新します)

基本的なこと

変換文字 ※赤字は使う頻度が(個人的に)多いもの

数値フィールドタイプ 変換指定子 詳細
整数、符号付 %d 基数10
%i 基数10(デフォルト)or 16(最初の数字が0x or 0X)or 8(最初の数字が0)
%ld or %li 64ビットの値
整数、符号なし %u 基数10
%o 基数8
%x 基数16
%lu or %lo or %lx 64ビットの値、基数10 or 8 or 16
浮動小数点数 %f 浮動小数点フィールドには、次のどれでもOK。Inf、-Inf、NaN、-NaN
%e
%g
文字または文字列 %c 単一の文字
%s 文字ベクトル or string配列

 

フラグ

‘-‘ 左揃えする
‘+’ 常に数値の符号を出力 or テキストを右揃えする
‘ ‘ 値の前にスペースを一つ追加する
‘0’ 値の前にゼロを入れてフィールド幅をパディングする
‘#’ 選択した数値変換を次のように変更

  • %o、%x or %Xのときは接頭辞0 or 0x or 0Xを出力
  • %f、%e or %Eのときは精度が0でも小数点を出力
  • %g or %Gのときは後続の0や小数点を削除しない
よくある例
  • フィールド幅のパディング(例:forループなどでiが1から100まで増えるとき,1や20を001や020みたいに表したい)

‘%03d’を使う

for i = 1:1:100
    fmt = '%03d'; % --- format(0はパディング,3は桁数,dは符号付整数を表す)
    str = num2str(i,fmt); % -- 整数を文字列に変換
    disp(str) % --- 画面に出力
end

 

 

参考サイト

あわせて読みたい