我想制作一个数字10x10矩阵(大小不太重要),填充0并且有1,但我希望只有5个,我希望它们随机分配这样每次我运行它们的位置都会改变。
这可能吗?谢谢!
答案 0 :(得分:1)
一种选择是生成随机5
索引,并用1
替换矩阵中的索引。
m[sample(1:100,5,replace = FALSE)] <- 1
m
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
# [1,] 0 1 0 0 0 1 0 0 0 0
# [2,] 0 0 0 0 0 0 0 0 0 0
# [3,] 0 1 0 0 0 0 0 0 0 0
# [4,] 0 0 0 0 0 0 0 0 0 0
# [5,] 1 0 0 0 0 0 0 0 0 0
# [6,] 0 0 0 0 0 0 0 0 0 0
# [7,] 0 0 0 0 0 0 0 0 0 0
# [8,] 0 0 0 0 0 0 0 0 0 0
# [9,] 0 0 0 0 0 0 0 0 1 0
# [10,] 0 0 0 0 0 0 0 0 0 0
数据强>
m <- matrix(rep(0,100),10)
答案 1 :(得分:1)
尝试
n <- 10
m <- matrix(0, nrow = n, ncol = n)
ind <- sample(n^2, 5)
m[ind] <- 1
答案 2 :(得分:1)
zero.one <- rep(0, 100)
zero.one[sample(100, 5)] <- 1 # randomly assigning just 5 1's
matrix(zero.one, ncol=10) # creating a 10x10 matrix
答案 3 :(得分:0)
这是一个单行解决方案:
tracks = importTrackMateTracks('8Tracks.xml', clipZ, scaleT);
x_displacements = zeros(length(tracks), 1);
for i = 1:length(tracks)
current_track = tracks{i};
first_x = current_track(1, 2);
last_x = current_track(end, 2);
x_displacements(i) = last_x - first_x;
end
随机抽取5 1s和95 0s的向量,然后将其转换为矩阵。