格式化输出,以便用0将整数填充为两位数

时间:2012-06-23 16:27:18

标签: matlab matrix number-formatting

当我在MATLAB中制作1x10矩阵时,例如a=[1:10],它会返回:

a =
     1     2     3     4     5     6     7     8     9    10

我。例如,它忽略了数字1到9的零位数。我希望有一个像这样的矩阵:

a =
     01     02     03     04     05     06     07     08     09    10.

2 个答案:

答案 0 :(得分:4)

试试这个:

>> a = 1:10
a =
     1     2     3     4     5     6     7     8     9    10

>> aa = cellstr(num2str(a(:),'%02d'))'
aa = 
    '01'    '02'    '03'    '04'    '05'    '06'    '07'    '08'    '09'    '10'

请注意,它现在是字符串的单元格数组:

>> whos a aa
  Name      Size            Bytes  Class     Attributes

  a         1x10               80  double              
  aa        1x10              640  cell                

答案 1 :(得分:1)

如果要以特定格式显示数字,可以为特定类型的数字重载disp功能。在该函数中,您需要创建一个带前导零的字符串。

如果要创建包含带前导零的数字的字符串,可以使用sprintf。例如,如果您想要

year = 2012;
month = 6;
day = 1;

您可以创建一个前导零的文件名,如下所示:

fileName = sprintf('%i%02i%02i.dat',year,month,day)
fileName =
    20120601.dat