Looping string array into parsed timestamp

1 Ansicht (letzte 30 Tage)
James
James am 17 Sep. 2024
Kommentiert: James am 18 Sep. 2024
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.

Akzeptierte Antwort

Stephen23
Stephen23 am 17 Sep. 2024
Bearbeitet: Stephen23 am 17 Sep. 2024
"... 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 Kommentare
Stephen23
Stephen23 am 18 Sep. 2024
"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 am 18 Sep. 2024
Thank you!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Characters and Strings finden Sie in Help Center und File Exchange

Produkte


Version

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by