对元胞数组中的多个字符串进行排序 (MATLAB)

Sort a numbers of strings in a cell array (MATLAB)

我有一个输入元胞数组:

 Input-cell = { 'ACGBF','BAFCEDG','FECA','AGDFB', 'GFCEABD', 'EDFCBAG'}

上面的元胞数组中有 6 个字符串。我使用以下命令将每个字符串按如下字母顺序排序:

 datasort = cellfun(@sort, randata, 'Uniformoutput', 0); % 6 strings were changed

现在,我只想更改 n=4 个字符串并保留左边的 m=2 个字符串作为原始字符串。我怎样才能做到这一点 ?预期输出将是:

    Output-cell = { 'ACGBF','BAFCEDG','ACEF','ABDFG', 'ABCDEFG', 'ABCDEFG'} 

您需要做的只是将要排序的数组部分传入 cellfun,然后连接其余部分,如下所示:

randata = { 'ACGBF','BAFCEDG','FECA','AGDFB', 'GFCEABD', 'EDFCBAG'};
n=4; 
datasort = [randata(1:end-n) cellfun(@sort,randata(end-n+1:end),'Uniformoutput',0)];

assert(isequal({ 'ACGBF','BAFCEDG','ACEF','ABDFG', 'ABCDEFG', 'ABCDEFG'},datasort));