などの 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.
などの 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.
これを試して:
>> 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
disp
数値を特定の形式で表示する場合は、特定の種類の数値に対して関数をオーバーロードできます。その関数では、先頭にゼロを付けた文字列を作成する必要があります。
先行ゼロの数値を含む文字列を作成する場合は、 を使用できますsprintf
。たとえば、
year = 2012;
month = 6;
day = 1;
次のように、先頭にゼロを付けてファイル名を作成できます。
fileName = sprintf('%i%02i%02i.dat',year,month,day)
fileName =
20120601.dat