我有一个输入单元格数组:
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'}
答案 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));