Julia 怎样才能用特殊的随机元素生成矩阵?

Julia 怎样才能用特殊的随机元素生成矩阵?,julia,Julia,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

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
。你能帮我怎么做这个矩阵吗?
谢谢。

您可以使用此功能:

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

这应该相对容易完成,但您能否指定您期望的采样模型(即数学术语),因为可以使用许多可能性。例如,我不清楚为什么示例中的第二行有问题,而第一行没有问题。我在第一行也有问题。它应该有
0,3
。至少选择一次{0,1,2,3}。具体如下:
10132;3  3  2  1  0;       3 2 1 0 0
我学到了很多以前不知道的东西。非常感谢@BogumiłKamiński教授