Sorting a cell of strings using a certain character position

Illustration
Quincy - 2021-01-08T09:40:22+00:00
Question: Sorting a cell of strings using a certain character position

I have a variable called var= vart=[{'Ice011_L_3of3m.mat''}; {'Ice011_P_1of3m.mat'} ;{'Ice011_P_2of3m.mat'}] We would need to sort the strings in the cell array using the 10th character of each string, so we would get the following result   var_sorted =[{'Ice011_P_1of3m.mat'}; {'Ice011_P_2of3m.mat'} ;{'Ice011_L_3of3m.mat'}]

Expert Answer

Profile picture of John Williams John Williams answered . 2025-11-20

Simpler in two lines:
 
 
vart = {'Ice011_L_3of3m.mat';'Ice011_P_1of3m.mat';'Ice011_P_2of3m.mat'}
[~,idx] = sort(cellfun(@(v)v(10),vart));
vart = vart(idx)

If you need to match more than one digit you could use a regular expression, e.g.:

[~,idx,] = sort(str2double(regexp(vart,'(?<=_)\d+','match','once')));


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!