Search code examples
stringmatlabsortingcell-array

Mix letters of a string in alphabetical order in matlab


I have the cell array of strings in matlab. I want to sort letters in every string in alphabetical order. How can I do that?

For example, if I have ['dcb','aetk','acb'}], I want it to be: ['bcd','aekt','abc'].


Solution

  • The handy helper here is cellfun, with the correct option for nonscalar output - we tell it to run sort on each element of the cell array in turn:

    >> a = {'dcb' 'aetk' 'acb'}
    a =
    {
      [1,1] = dcb
      [1,2] = aetk
      [1,3] = acb
    }
    
    >> b = cellfun(@sort, a, 'UniformOutput', false);
    b =
    {
      [1,1] = bcd
      [1,2] = aekt
      [1,3] = abc
    }