Используя идею, аналогичную @ Jacob , вот несколько более простое решение:
%# your cell array
d = {
'msft' '1/9/11' 19.8
'msft' '1/8/11' 18.7
'csco' '1/8/11' 9.8
'csco' '1/9/11' 10.0
};
%# extract 2 columns, convert to serial date, sort, apply order to original data
[~,idx] = sortrows([datenum(d(:,2),'mm/dd/yy') cell2mat(d(:,3))], [1 2]);
d = d(idx,:)
Предыдущее:
d =
'msft' '1/9/11' [19.8]
'msft' '1/8/11' [18.7]
'csco' '1/8/11' [ 9.8]
'csco' '1/9/11' [ 10]
После:
d =
'csco' '1/8/11' [ 9.8]
'msft' '1/8/11' [18.7]
'csco' '1/9/11' [ 10]
'msft' '1/9/11' [19.8]