如何打印Matlab';持续时间
Matlab最近引入了一种新类型的持续时间。所以我可以这样做:如何打印Matlab';持续时间,matlab,time,Matlab,Time,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 现在我想使用fprintf输出一些计算的结果,
>> d = datetime('12:10:00') - datetime('12:05:00')
d =
00:05:00
>> whos d
Name Size Bytes Class Attributes
d 1x1 128 duration
现在我想使用fprintf
输出一些计算的结果,它是duration
类型。但是,duration
既不是数字也不是字符串,也没有创建字符串的方法。我如何才能使fprintf
接受它
我使用Matlab2014b。您可以使用
>> d_char = char(d);
>> whos d_char
Name Size Bytes Class Attributes
d_char 1x8 16 char
有一些函数可以将
duration
类型转换为表示秒或分钟等的double
数字。请参见示例
以你为例,
>> 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
我认为这更符合OP之后的情况,这正是我想要的。谢谢。是的,这就是我到目前为止所做的。但是它真的很麻烦:)Eval是邪恶的:)谢谢你的破解。显然,char解决方案更好:)