【发布时间】:2014-10-14 07:56:55
【问题描述】:
我正在使用 randperm 对向量中的元素进行随机排列。但是,我有一个问题,即我有一个大小为 N 的向量,并且我只想要该向量中的随机排列 k 个第一个元素,而 N-k 个元素没有变化。 matlab代码怎么做?
例如:
A = [1 1 1 1 0 0 0 0 0 0]
% N=10 array length; d=4 number of element equal to 1 in the first k elements, k=7
期望的输出:
A_randperm=[0 1 1 0 1 0 1 0 0 0]
% Random permutation elements of 1st to 7th, 8th to 10th elements stay the same
这是我的代码
d=4;
N=10;
k=7;
column = [ones(1,d) zeros(1,N-d)];% create random vector without permutation
% Random permutation
....
【问题讨论】:
-
A(1:k) = A(randperm(k)); -
@JandeGier 请作为答案发帖
标签: matlab permutation