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

时间:2015-10-26 17:11:22

标签: matlab sorting cell-array

我有一个输入单元格数组:

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

上述单元格数组中有6个字符串。我使用以下命令将每个字符串排序为字母序列,如下所示:

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

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

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

1 个答案:

答案 0 :(得分:2)

您需要做的只是将要排序的数组部分传入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));