Matlab 格式化输出,使整数填充为两位零
当我在MATLAB中创建1x10矩阵时,例如Matlab 格式化输出,使整数填充为两位零,matlab,matrix,number-formatting,Matlab,Matrix,Number Formatting,当我在MATLAB中创建1x10矩阵时,例如a=[1:10],它返回: a = 1 2 3 4 5 6 7 8 9 10 一,。e、 ,它忽略数字1到9之间的零位数字。我想要一个这样的矩阵: a = 01 02 03 04 05 06 07 08 09 10. 如果要以特定格式显示数字,可以为特定类型的数字重载disp功能。在该函数中
a=[1:10]
,它返回:
a =
1 2 3 4 5 6 7 8 9 10
一,。e、 ,它忽略数字1到9之间的零位数字。我想要一个这样的矩阵:
a =
01 02 03 04 05 06 07 08 09 10.
如果要以特定格式显示数字,可以为特定类型的数字重载
disp
功能。在该函数中,需要创建一个前导为零的字符串
如果要创建包含带前导零的数字的字符串,可以使用sprintf
。例如,如果你想
year = 2012;
month = 6;
day = 1;
可以创建前导零的文件名,如下所示:
fileName = sprintf('%i%02i%02i.dat',year,month,day)
fileName =
20120601.dat
如果要以特定格式显示数字,可以为特定类型的数字重载
disp
功能。在该函数中,需要创建一个前导为零的字符串
如果要创建包含带前导零的数字的字符串,可以使用sprintf
。例如,如果你想
year = 2012;
month = 6;
day = 1;
可以创建前导零的文件名,如下所示:
fileName = sprintf('%i%02i%02i.dat',year,month,day)
fileName =
20120601.dat
试试这个:
>> 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
试试这个:
>> 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
2
和02
是相同的数字。你的意思是你想要一个自定义的方式来显示你的矩阵吗?没错。我可以在MATLAB中实现吗?一个类似的问题:。顺便说一下,这个命令似乎对您的特定问题没有帮助。@Luca Gereti是的,Luca。“格式化”命令不起作用。我正在尝试编写一个字符串,该字符串的文件如下:20120601.dat。令我惊讶的是,该程序解释为:201261.dat。这就像零被抑制一样。2
和02
是同一个数字。你的意思是你想要一个自定义的方式来显示你的矩阵吗?没错。我可以在MATLAB中实现吗?一个类似的问题:。顺便说一下,这个命令似乎对您的特定问题没有帮助。@Luca Gereti是的,Luca。“格式化”命令不起作用。我正在尝试编写一个字符串,该字符串的文件如下:20120601.dat。令我惊讶的是,该程序解释为:201261.dat。就像零被抑制了一样。但是现在数组的类型完全不同了!好的,乔纳斯。我在声明中没有具体说明。我想就像奥利写的那样。sprintf-return的使用strings@MattPhillips:是,因为前导零在处理数字类型时没有意义。不管怎样,我已经改变了我的答案。”索洛卡瓦略:如果我的答案是有用的,请考虑接受我的答案!但是现在阵列的类型完全不同了!好的,乔纳斯。我在声明中没有具体说明。我想就像奥利写的那样。sprintf-return的使用strings@MattPhillips:是,因为前导零在处理数字类型时没有意义。不管怎样,我已经改变了我的答案。”索洛卡瓦略:如果我的答案是有用的,请考虑接受我的答案!