The basic problem is that your file is large, and by default READTABLE checks a limited number of rows** before deciding what data type each column has***. Your data file has very different data at the start of those columns than it does further down those columns, e.g. some of them contain mostly numeric data at the start... but in fact you want columns 2, 3, & 4 imported as text (because they all contain alphanumeric characters****).
So you need to tell READMATRIX that, e.g.:
obj = detectImportOptions(fnm);
obj = setvartype(obj,2:4,'string');
tbl = readtable(fnm,obj)
Warning: Column headers from the file were modified to make them valid MATLAB identifiers before creating variable names for the table. The original column headers are saved in the VariableDescriptions property.
Set 'VariableNamingRule' to 'preserve' to use the original column headers as table variable names.
tbl =
UTC MRC_TXID MRC_CommandID MRC_User_Defined
____________________ ________ _____________ ________________
8321:16:37.994597698 "1A" "0" "8"
8321:16:38.004597698 "1A" "0" "8"
8321:16:38.014597698 "1A" "0" "8"
8321:16:38.024597698 "1A" "0" "8"
8321:16:38.034597698 "1A" "0" "8"
8321:16:38.044597698 "1A" "0" "8"
8321:16:38.054597599 "1A" "0" "8"
8321:16:38.064597698 "1A" "0" "8"
8321:16:38.074597698 "1A" "0" "8"
8321:16:38.084597599 "1A" "0" "8"
8321:16:38.094597599 "1A" "0" "8"
8321:16:38.104597599 "1A" "0" "8"
8321:16:38.114597599 "1A" "0" "8"
8321:16:38.124597599 "1A" "0" "8"
8321:16:38.134597599 "1A" "0" "8"
8321:16:38.144597599 "1A" "0" "8"
[~,ind] = unique(tbl(:,2:4),'stable');
t2 = tbl(ind,:)
t2 =
UTC MRC_TXID MRC_CommandID MRC_User_Defined
____________________ ________ _____________ ________________
8321:16:37.994597698 "1A" "0" "8"
8321:29:57.394167701 "1" "E" "3E"
8321:29:58.474167098 "1" "23" "3E"
8321:30:52.554138698 "2" "E" "3E"
8321:30:53.634138099 "2" "23" "3E"
8321:31:30.414119201 "5" "23" "3E"
8321:34:20.234026298 "6" "23" "3E"
8321:34:41.864013999 "A" "23" "3E"
8321:35:00.254003200 "9" "23" "3E"
8321:37:52.223900798 "2" "0" "3E"
8321:38:07.373891498 "2" "24" "3E"
8321:38:11.693888801 "2" "12" "3E"
8321:38:17.103885501 "2" "31" "3E"
8321:38:20.353883499 "2" "1C" "3E"
8321:38:30.083877399 "2" "E" "30"
8321:38:35.493874000 "2" "E" "34"
And there is your "missing" data:
idx = all(t2{:,2:4}==["2","E","3E"],2);
t2(idx,:)
ans =
UTC MRC_TXID MRC_CommandID MRC_User_Defined
____________________ ________ _____________ ________________
8321:30:52.554138698 "2" "E" "3E"
Just to confirm, lets check its location in the imported table:
tbl(idy,:)
ans =
UTC MRC_TXID MRC_CommandID MRC_User_Defined
____________________ ________ _____________ ________________
8321:30:52.554138698 "2" "E" "3E"
And checking that line in the original file (don't forget the header is also one line):
So far everything looks as expected.
"matlab 'unique' is skipping rows with data"
So far I don't see any problem with UNIQUE.
** Apparently fewer than 79825: 
*** Because otherwise people complain that file importing takes too long. This is a good example of John Lydgate's aphorism about pleasing all people all of the time.
**** Look at your table t: numeric columns cannot contain alphabetic characters. That should be the big clue for you, that you need to modify the file importing.