Looping string array into parsed timestamp

조회 수: 1 (최근 30일)
James
James 2024년 9월 17일
댓글: James 2024년 9월 18일
I have the following data that I would like to parse into hours:minutes:secs to plot against other data.
Here is my code that is causing issues with the indexing.
TS = ["085423","085428","085431","085502"];
TS = TS';
for i = 1:length(TS)
timestr = TS(i);
end
hours = timestr(1:2);
minutes = timestr(3:4);
secs = timestr(5:6);
formatted_time_str = [hours, ':', minutes, ':', secs];
Any insight is appreciated. Thank you.

채택된 답변

Stephen23
Stephen23 2024년 9월 17일
편집: Stephen23 2024년 9월 17일
"... that is causing issues with the indexing."
Because you are mixing up indexing into string arrays with the characters contained within them. Not the same things at all: indexing into a string array indexes into the string array, not into the characters it contains (as you incorrectly assumed).
TS = ["085423","085428","085431","085502"]
TS = 1x4 string array
"085423" "085428" "085431" "085502"
Method one: returns a string array:
FS = extractBefore(TS(:),3)+":"+extractBetween(TS(:),3,4)+":"+extractAfter(TS(:),4)
FS = 4x1 string array
"08:54:23" "08:54:28" "08:54:31" "08:55:02"
Method two: returns a char matrix:
FS = repmat(':',numel(TS),8);
FS(:,[1:2,4:5,7:8]) = char(TS(:))
FS = 4x8 char array
'08:54:23' '08:54:28' '08:54:31' '08:55:02'
  댓글 수: 5
Stephen23
Stephen23 2024년 9월 18일
"In trying to plot the FS data (timestamp) against numerical data I get an error message:"
If you are trying to plot with this data, then you are likely much better of using DURATION objects rather than fiddling around with text or numerics:
TS = ["085423";"085428";"085431";"085502"];
H = str2double(extractBefore(TS(:),3));
M = str2double(extractBetween(TS(:),3,4));
S = str2double(extractAfter(TS(:),4));
D = duration(H,M,S)
D = 4x1 duration array
08:54:23 08:54:28 08:54:31 08:55:02
Y = rand(size(D));
scatter(D,Y)
James
James 2024년 9월 18일
Thank you!

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Characters and Strings에 대해 자세히 알아보기

태그

제품


릴리스

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by