selcting 3 values from top 10 values
1 次查看(过去 30 天)
显示 更早的评论
I am working on data mining,I have 1000*1rows and columns ,I want to select 3 values from 100 vales and next 3 from 2ng 100 and next 3 fro 3rd 100,finally i need 30 values (3 from each hundred),can any one tell how to process
2 个评论
the cyclist
2011-9-14
Pat, be aware that Nirmal's solution below assume you want the first three values of each set of 100, and Jan's assumes a random three. You might want to be more specific.
回答(3 个)
Jan
2011-9-14
Without repetitions:
X = rand(1, 1000);
R = zeros(10, 3);
for i = 1:10
P = randperm(100);
R(i, :) = X(P(1:3) + (i-1)*100);
end
With repetions:
Index = bsxfun(@plus, floor(rand(3, 10)*100), 1:100:1000);
R = x(Index);
0 个评论
Nirmal Gunaseelan
2011-9-14
result = [];
original = [1:1000];
for itr = 0:100:900
result = [result original(itr + [1,2,3])];
end
0 个评论
Andrei Bobrov
2011-9-14
My variant
X = randi(500,1000,1);
[~,IR] = sort(rand(100,10));
R = X(bsxfun(@plus,IR(1:3,:),0:size(IR,2)-1));
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!