wolffd@0: % ASORT wolffd@0: % a pedestrian NUMERICAL SORTER of ALPHANUMERIC data wolffd@0: wolffd@0: % - create some data wolffd@0: d = { wolffd@0: % strings with one valid alphanumeric number wolffd@0: % sorted numerically wolffd@0: '-inf' wolffd@0: 'x-3.2e4y' wolffd@0: 'f-1.4' wolffd@0: '-.1' wolffd@0: '+ .1d-2' wolffd@0: '.1' wolffd@0: 'f.1' wolffd@0: 'f -+1.4' wolffd@0: 'f.2' wolffd@0: 'f.3' wolffd@0: 'f.10' wolffd@0: 'f.11' wolffd@0: '+inf' wolffd@0: ' -nan' wolffd@0: '+ nan' wolffd@0: 'nan' wolffd@0: % strings with many numbers or invalid/ambiguous numbers wolffd@0: % sorted in ascii dictionary order wolffd@0: ' nan nan' wolffd@0: '+ .1e-.2' wolffd@0: '-1 2' wolffd@0: 'Z12e12ez' wolffd@0: 'inf -inf' wolffd@0: 's.3TT.4' wolffd@0: 'z12e12ez' wolffd@0: % strings without numbers wolffd@0: % sorted in ascii dictionary order wolffd@0: ' . .. ' wolffd@0: '.' wolffd@0: '...' wolffd@0: '.b a.' wolffd@0: 'a string' wolffd@0: 'a. .b' wolffd@0: }; wolffd@0: % ... and scramble it... wolffd@0: rand('seed',10); wolffd@0: d=d(randperm(numel(d))); wolffd@0: wolffd@0: % - run ASORT with wolffd@0: % verbose output: <-v> wolffd@0: % keep additional results: <-d> wolffd@0: o=asort(d,'-v','-d'); wolffd@0: % - or wolffd@0: % p=asort(char(d),'-v','-d'); wolffd@0: wolffd@0: % - show results wolffd@0: o wolffd@0: o.anr wolffd@0: wolffd@0: % - run ASORT with no-space/template options wolffd@0: % NOTE the impact of -w/-t order! wolffd@0: s={'ff - 1','ff + 1','- 12'}; wolffd@0: % RAW wolffd@0: o=asort(s,'-v'); wolffd@0: % remove SPACEs wolffd@0: o=asort(s,'-v','-w'); wolffd@0: % remove TEMPLATE(s) wolffd@0: o=asort(s,'-v','-t',{'ff','1'}); wolffd@0: % remove TEMPLATE(s) than SPACEs wolffd@0: o=asort(s,'-v','-t','1','-w'); wolffd@0: % remove SPACEs than TEMPLATE(s) wolffd@0: o=asort(s,'-v','-w','-t','1'); wolffd@0: