필터 지우기
필터 지우기

How to convert time in milliseconds to hour, minutes format?

조회 수: 24 (최근 30일)
abdur rauf
abdur rauf 2021년 11월 4일
편집: abdur rauf 2021년 11월 5일
I want to convert time in millisecons format to hour, minutes format using matlab 2013b. I used the following code to convert milliseconds to seconds;
time_seconds=time/1000;
% Here 'time' is a matrix in milliseconds format. It can be found in the
% attacement. The output matrix 'time_seconds' contains time in seconds.
To convert the time in seconds to hour, minute format, I tried the following code from
s = seconds(time_seconds);
s.Format = 'hh:mm';
from
https://www.mathworks.com/matlabcentral/answers/519116-convert-seconds-to-hours-minutes
After execution of the first line in the above two lines code, I got an error message;
Error using datevecmx
The datevecmx function only accepts double arrays.
Error in datevec (line 301)
y = datevecmx(t);
Error in second (line 46)
c = datevec(d(:));
Any help in solving this problem will be appreciated.
Thanks
  댓글 수: 1
Stephen23
Stephen23 2021년 11월 4일
편집: Stephen23 2021년 11월 4일
"I want to convert time in millisecons format to hour, minutes format using matlab 2013b."
Please explain what output you expect to get: a duration array (not supported on your MATLAB version), numeric array/s (what size/s?), or character array/s (what size/s?) or a cell array (what size?) of character row vectors, or something else?
Given that your data has values on the order of
>> time(1:9,1:9)
ans =
86556152 86610975 86668816 86723356 86784534 86838907 86897188 86951302 87027564
86556108 86611020 86668772 86723402 86784488 86838952 86897142 86951346 87027516
86556062 86611064 86668730 86723446 86784442 86838997 86897097 86951391 87027470
86556014 86611108 86668688 86723490 86784398 86839041 86897054 86951436 87027425
86555966 86611152 86668645 86723536 86784353 86839085 86897008 86951480 87027378
86555920 86611195 86668602 86723581 86784309 86839130 86896963 86951523 87027330
86555875 86611238 86668557 86723626 86784263 86839175 86896920 86951567 87027283
86555831 86611281 86668510 86723669 86784215 86839218 86896875 86951612 87027239
86555789 86611325 86668465 86723713 86784170 86839261 86896829 86951656 87027196
which are larger than 24 hours, do you want to continue counting up the hours to give values >24 hours, to add a days unit, or to take the modulo of every 24 hour, or something else? For example, the first element's value is:
>> double(time(1))/1000/60/60 % hours
ans =
24.0433755555556
what output do you expect for this many hours?
What output do you want for the -999 values the bottom of the columns?

댓글을 달려면 로그인하십시오.

답변 (1개)

Yongjian Feng
Yongjian Feng 2021년 11월 4일
What is time_seconds you passed to seconds? It needs to be a double.
s = seconds(1000);
s.Format = 'hh:mm'
  댓글 수: 1
Rik
Rik 2021년 11월 4일
fn=websave('data.mat','https://www.mathworks.com/matlabcentral/answers/uploaded_files/789570/time.mat');
S=load(fn);
class(S.time)
ans = 'int32'
This is supported on R2021b, but not on R2013b.
time=int32(1000);
s = seconds(time);
s.Format = 'hh:mm'
s = duration
00:16

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by