Matlab 如何使向量的k个第一元素的大小为N
我用randperm对向量中的元素进行随机排列。然而,我有一个问题,我有一个大小为N的向量,我只想要随机排列的k个元素,而N-k元素是不变的。如何用matlab代码实现 例如:Matlab 如何使向量的k个第一元素的大小为N,matlab,permutation,Matlab,Permutation,我用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 per
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));
完成工作。如评论中所述:
A(1:k) = A(randperm(k));
做这项工作。对@JanDeGier的解决方案有点不同:
x = 1:10;
k = 7;
x = [x(randperm(k)) x(k+1:end)];
@JanDeGier溶液的细微变化:
x = 1:10;
k = 7;
x = [x(randperm(k)) x(k+1:end)];
A1:k=Arandpermk@请将JandeGier帖子作为答案A1:k=Arandpermk@请把JandeGier的帖子作为答案