Data Selection/Sorting
1 次查看(过去 30 天)
显示 更早的评论
I have a column vector known as Data. Please see attached. I want to divide/sort this column vector into two (80% and 20%). I want the 80% to comprise the first largest/lowest values in 'Data' and the remaining 20% to comprise the next largest/lowest values. Any ideas? Thank you so much!
0 个评论
采纳的回答
JESUS DAVID ARIZA ROYETH
2019-11-9
I hope this is what you are looking for:
data=[23 20 18 50 17 24 56 35 38 19 29 53 26]';
f=sort(data,'descend');
f2=reshape([f flipud(f)]',[],1);
vector80=f2(1:round(numel(data)*0.8))
vector20=f2(round(numel(data)*0.8)+1:numel(data))
Another interpretation of what I understood could be like this too:
data=[23 20 18 50 17 24 56 35 38 19 29 53 26]';
f=sort(data,'descend');
vector80=f(1:round(numel(data)*0.8))
vector20=f(round(numel(data)*0.8)+1:numel(data))
2 个评论
JESUS DAVID ARIZA ROYETH
2019-11-10
it works for both forms, if data is 1x13 then change it with data = data '; so that it is 13x1, and if you want to show the results as rows then add a single quote, for example: vector80 = f2 (1: round (numel (data) * 0.8)) '
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!