I'm sorting data by number groups and need some help on how to do this properly and efficiently.
%Here are the inputs
WPL = [1.0000 0.2326; 5.0000 0.1217; 4.0000 0.0881; 6.0000 0.0842; 8.0000 0.0764; 11.0000 0.0549; 13.0000 0.0508; 3.0000 0.0460; 10.0000 0.0412; 12.0000 0.0359; 9.0000 0.0298; 15.0000 0.0271; 18.0000 0.0243; 2.0000 0.0189; 19.0000 0.0147; 7.0000 0.0119; 16.0000 0.0096; 21.0000 0.0084; 14.0000 0.0061; 20.0000 0.0042; 17.0000 0.0037; 27.0000 0.0027; 23.0000 0.0020; 24.0000 0.0017; 25.0000 0.0013; 22.0000 0.0010; 26.0000 0.0006; 28.0000 0; 29.0000 0; 30.0000 0; 31.0000 0; 32.0000 0; 33.0000 0; 34.0000 0; 35.0000 0; 36.0000 0; 37.0000 0; 38.0000 0; 39.0000 0];NG = [1.0000 0.4834; 6.0000 0.2533; 11.0000 0.1796; 16.0000 0.0671; 21.0000 0.0127; 26.0000 0.0038; 31.0000 0; 36.0000 0];%here is the code
ng1 = (1 <= WPL(:,1) & WPL(:,1) <= 5)*1;ng2 = (6 <= WPL(:,1) & WPL(:,1) <= 10)*6;ng3 = (11 <= WPL(:,1) & WPL(:,1) <= 15)*11;ng4 = (16 <= WPL(:,1) & WPL(:,1) <= 20)*16;ng5 = (21 <= WPL(:,1) & WPL(:,1) <= 25)*21;ng6 = (26 <= WPL(:,1) & WPL(:,1) <= 30)*26;ng7 = (31 <= WPL(:,1) & WPL(:,1) <= 35)*31;ng8 = (36 <= WPL(:,1) & WPL(:,1) <= 39)*36;numgrp = ng1+ng2+ng3+ng4+ng5+ng6+ng7+ng8;for n = 1:size(numgrp,1) if numgrp(n) == 1 List(n) = NG(1,2)*WPL(n,2); elseif numgrp(n) == 6 List(n) = NG(2,2)*WPL(n,2); elseif numgrp(n) == 11 List(n) = NG(3,2)*WPL(n,2); elseif numgrp(n) == 16 List(n) = NG(4,2)*WPL(n,2); elseif numgrp(n) == 21 List(n) = NG(5,2)*WPL(n,2); elseif numgrp(n) == 26 List(n) = NG(6,2)*WPL(n,2); elseif numgrp(n) == 31 List(n) = NG(7,2)*WPL(n,2); elseif numgrp(n) == 36 List(n) = NG(8,2)*WPL(n,2); endendWPL = sortrows([WPL(:,1) (List/sum(List))'],-2);
Here is the output, this output works, however I would like to improve this code to make such an output, any help is appreciated!!!
WPL = 1.0000 0.3285 5.0000 0.1719 4.0000 0.1244 3.0000 0.0650 6.0000 0.0623 8.0000 0.0565 10.0000 0.0305 11.0000 0.0288 2.0000 0.0267 13.0000 0.0267 9.0000 0.0221 12.0000 0.0188 15.0000 0.0142 7.0000 0.0088 18.0000 0.0048 14.0000 0.0032 19.0000 0.0029 16.0000 0.0019 20.0000 0.0008 17.0000 0.0007 21.0000 0.0003 23.0000 0.0001 24.0000 0.0001 25.0000 0.0000 22.0000 0.0000 27.0000 0.0000 26.0000 0.0000 28.0000 0 29.0000 0 30.0000 0 31.0000 0 32.0000 0 33.0000 0 34.0000 0 35.0000 0 36.0000 0 37.0000 0 38.0000 0 39.0000 0
Best Answer