在Julia中是否有可能制作具有特殊随机元素的矩阵? 例如,一个矩阵,其中每一行都有随机元素,但每个元素都应重复至少一次:
n = zeros(Int,3, 5)
for i in indices(n, 1)
for j in indices(n, 2)
n[i,j]=rand(0:3)
end
end
n=
3×5 Array{Int64,2}:
1 2 1 1 2
3 3 2 2 0
3 2 1 0 0
但在第二行中没有1
。您能帮我这个矩阵的制作方法吗?
谢谢。
答案 0 :(得分:3)
您可以使用此功能:
using Random
function randfill!(m::AbstractMatrix, s::AbstractVector)
n1 = length(s)
n2 = size(m, 2)
@assert n2 >= n1
for i in 1:size(m,1)
m[i, 1:n1] .= s
for j in n1+1:n2
m[i,j] = rand(s)
end
shuffle!(view(m, i, :))
end
m
end