我有以下形式的两列矩阵:
1. 1 1
2. 1 1
3. 1 2
4. 1 2
5. 2 2
6. 2 2
7. 3 2
8. 3 2
9. 3 3
10. 4 3
11. 4 4
我想使用 randsample() 从第一列中抽取一个数字。
假设结果是 2。
我想知道的是样本取自哪一行?(在这种情况下,它可能是从第 5 行或第 6 行采样的)
这可能吗?
我有以下形式的两列矩阵:
1. 1 1
2. 1 1
3. 1 2
4. 1 2
5. 2 2
6. 2 2
7. 3 2
8. 3 2
9. 3 3
10. 4 3
11. 4 4
我想使用 randsample() 从第一列中抽取一个数字。
假设结果是 2。
我想知道的是样本取自哪一行?(在这种情况下,它可能是从第 5 行或第 6 行采样的)
这可能吗?
find
使用and很容易==
:
>> A = [
1 1
1 1
1 2
1 2
2 2
2 2
3 2
3 2
3 3
4 3
4 4];
>> R = randsample(4,1)
>> find(A(:,1) == R)
R =
4
ans =
10
11
或者,正如 igor milla 所指出的,
>> I = randi(11)
>> A(I, :)
I =
9
ans =
3 3
如果您只需要对一个值进行采样,@igor milla 给出的解决方案就可以了。但是,如果您想使用randsample
then 给出的选项,我建议您对列号进行采样,而不是直接采样。
A = rand(11,2); %suppose this is your matrix
k = 1; %This is the size of your desired sample
mysampleid = randsample(size(A,1),k)
mysample = A(mysampleid,:)
现在mysampleid
包含列数,而 mysample 包含您采样的行。如果您只想对第一列进行采样,则可以A(mysampleid,1)
改用。