如何打印 Matlab 的 DURATION
How to print Matlab's DURATION
Matlab 最近引入了一种新类型——持续时间。所以我可以做类似的事情:
>> d = datetime('12:10:00') - datetime('12:05:00')
d =
00:05:00
>> whos d
Name Size Bytes Class Attributes
d 1x1 128 duration
现在我想输出一个duration
类型的计算结果,使用fprintf
。但是 duration
既不是数字也不是字符串,也没有创建字符串的方法。我该怎么做才能让 fprintf
接受它?
我正在使用 Matlab 2014b。
您可以使用
>> d_char = char(d);
>> whos d_char
Name Size Bytes Class Attributes
d_char 1x8 16 char
有一些函数可以将 duration
类型转换为表示秒或分钟等的 double
数字。参见示例 here。
使用你的例子,
>> d = datetime('12:10:00') - datetime('12:05:00')
d =
00:05:00
>> seconds(d)
ans =
300
>> minutes(d)
ans =
5
>> hours(d)
ans =
0.0833
看起来 disp 被持续时间变量重写了,也许你可以利用它:
ld = duration(1,2,3);
>> ld
ld =
01:02:03
>> fprintf('%s', ld)
Error using fprintf
Function is not defined for 'duration' inputs. .
>> disp(ld)
01:02:03
>> c = evalc('disp(ld)')
c =
01:02:03
>> fprintf('%s', evalc('disp(ld)'))
01:02:03
Matlab 最近引入了一种新类型——持续时间。所以我可以做类似的事情:
>> d = datetime('12:10:00') - datetime('12:05:00')
d =
00:05:00
>> whos d
Name Size Bytes Class Attributes
d 1x1 128 duration
现在我想输出一个duration
类型的计算结果,使用fprintf
。但是 duration
既不是数字也不是字符串,也没有创建字符串的方法。我该怎么做才能让 fprintf
接受它?
我正在使用 Matlab 2014b。
您可以使用
>> d_char = char(d);
>> whos d_char
Name Size Bytes Class Attributes
d_char 1x8 16 char
有一些函数可以将 duration
类型转换为表示秒或分钟等的 double
数字。参见示例 here。
使用你的例子,
>> d = datetime('12:10:00') - datetime('12:05:00')
d =
00:05:00
>> seconds(d)
ans =
300
>> minutes(d)
ans =
5
>> hours(d)
ans =
0.0833
看起来 disp 被持续时间变量重写了,也许你可以利用它:
ld = duration(1,2,3);
>> ld
ld =
01:02:03
>> fprintf('%s', ld)
Error using fprintf
Function is not defined for 'duration' inputs. .
>> disp(ld)
01:02:03
>> c = evalc('disp(ld)')
c =
01:02:03
>> fprintf('%s', evalc('disp(ld)'))
01:02:03