You are making your life more difficult using fopen etc. Use writetable and readtable:
>> laptimes = readtable("laptimes.txt","ReadVariableNames",false);
>> laptimes.Properties.VariableNames = ["Driver" "Team" "Time"];
>> laptimes.Time = duration(laptimes.Time,"Format","mm:ss.SSS")
laptimes =
100×3 table
Driver Team Time
_______ ________________ _________
{'SAI'} {'ferrari' } 01:44.985
{'GAS'} {'alpha tauri' } 02:53.559
{'NOR'} {'mclaren' } 01:15.933
{'MAG'} {'haas' } 01:08.720
{'ALB'} {'williams' } 01:14.484
{'NOR'} {'mclaren' } 02:21.639
{'STR'} {'aston martin'} 02:17.887
{'OCO'} {'alpine' } 02:55.199
{'HAM'} {'mercedes' } 02:04.395
{'SAI'} {'ferrari' } 01:35.992
{'SAI'} {'ferrari' } 02:10.402
{'MSC'} {'haas' } 01:50.659
{'VET'} {'aston martin'} 02:10.901
{'MAG'} {'haas' } 02:30.995
{'VER'} {'red bull' } 02:59.653
{'ALO'} {'alpine' } 01:21.109
{'NOR'} {'mclaren' } 01:03.037
{'OCO'} {'alpine' } 02:13.618
{'SAI'} {'ferrari' } 02:24.567
{'ALB'} {'williams' } 02:20.962
: : :
{'VER'} {'red bull' } 02:37.751
{'GAS'} {'alpha tauri' } 02:16.368
{'ALB'} {'williams' } 01:27.941
{'RIC'} {'mclaren' } 02:50.018
{'ALO'} {'alpine' } 02:12.829
{'LEC'} {'ferrari' } 02:18.626
{'SAI'} {'ferrari' } 02:29.539
{'LEC'} {'ferrari' } 01:20.650
{'MAG'} {'haas' } 02:48.726
{'RIC'} {'mclaren' } 01:59.095
{'BOT'} {'alfa romeo' } 02:10.877
{'VET'} {'aston martin'} 02:14.015
{'MSC'} {'haas' } 02:42.295
{'SAI'} {'ferrari' } 01:23.180
{'SAI'} {'ferrari' } 02:58.926
{'BOT'} {'alfa romeo' } 01:58.069
{'VET'} {'aston martin'} 01:38.581
{'SAI'} {'ferrari' } 02:51.637
{'ALB'} {'williams' } 02:24.651
{'ALB'} {'williams' } 01:38.864
Display all 100 rows.
If the file had been written with column headings, that code would have been even shorter.
At that point, what you want is a one-liner:
>> besttimes = varfun(@min,laptimes,"GroupingVariables","Driver","InputVariables","Time")
besttimes =
20×3 table
Driver GroupCount min_Time
_______ __________ _________
{'ALB'} 6 01:14.484
{'ALO'} 7 01:21.109
{'BOT'} 7 01:15.051
{'GAS'} 7 01:56.890
{'HAM'} 3 01:35.276
{'LAT'} 6 01:18.880
{'LEC'} 5 01:20.650
{'MAG'} 8 01:08.720
{'MSC'} 3 01:31.334
{'NOR'} 5 01:03.037
{'OCO'} 4 01:57.805
{'PER'} 1 02:34.701
{'RIC'} 6 01:34.114
{'RUS'} 3 01:30.452
{'SAI'} 9 01:23.180
{'STR'} 3 02:17.887
{'TSU'} 2 01:34.514
{'VER'} 6 01:14.059
{'VET'} 7 01:01.031
{'ZHO'} 2 01:26.962