MATLAB: How to reorder cell array based on the vector

how to reorder cell array based on the vector

I have
index = [1; 2; 4; 3; 7; 6; 5];
list = {[1158;1159], [1543;1544], [2020;2096;2173], [2159], [4836], [5374], [5492;5493]};
list_sort = cellfun(@(x) x(index') ,list,'UniformOutput',false );
List_sort should be
list_sort = {[1158;1159], [1543;1544], [2159], [2020;2096;2173], [5492;5493], [5374], [4836]};

Best Answer

index = [1; 2; 4; 3; 7; 6; 5];
list = {[1158;1159], [1543;1544], [2020;2096;2173], [2159], [4836], [5374], [5492;5493]};
list_sort = list(index);