selcting 3 values from top 10 values

1 次查看(过去 30 天)
Pat
Pat 2011-9-14
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 个评论
Jan
Jan 2011-9-14
Should the elements be chosen randomly? Are repetitions allowed?
the cyclist
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
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);

Nirmal Gunaseelan
Nirmal Gunaseelan 2011-9-14
A good place to start is Matrix Indexing. One way of achieving this:
result = [];
original = [1:1000];
for itr = 0:100:900
result = [result original(itr + [1,2,3])];
end

Andrei Bobrov
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));

类别

Help CenterFile Exchange 中查找有关 Linear Algebra 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by