Arrays MethodError:基于Julia中的正态分布生成随机数时,没有匹配/(::Int64,::数组{Int64,1})的方法

Arrays MethodError:基于Julia中的正态分布生成随机数时,没有匹配/(::Int64,::数组{Int64,1})的方法,arrays,random,julia,Arrays,Random,Julia,我需要从正态分布构造一个随机数的多元素数组(为此使用“分布”包)。我正在使用下面的代码 [rand(分布.正态分布(0,a[end]+0.5*(1-b[n]))、c,长度(b[1,:])*d[n]/c,n=1:length(b)] 其中(我在本例中使用随机数): 运行代码时,我收到以下错误消息: MethodError:没有方法匹配/(::Int64,::数组{Int64,1}) 有什么办法可以让它工作吗 谢谢你的帮助 -亚历杭德罗·布劳恩 编辑: 我把d改为collect(1:32)。我在键入

我需要从正态分布构造一个随机数的多元素数组(为此使用“分布”包)。我正在使用下面的代码

[rand(分布.正态分布(0,a[end]+0.5*(1-b[n]))、c,长度(b[1,:])*d[n]/c,n=1:length(b)]

其中(我在本例中使用随机数):

运行代码时,我收到以下错误消息:

MethodError:没有方法匹配/(::Int64,::数组{Int64,1})

有什么办法可以让它工作吗

谢谢你的帮助

-亚历杭德罗·布劳恩

编辑:
我把d改为collect(1:32)。我在键入问题时出错,对于由此造成的任何混乱,我深表歉意。

不是100%确定您要做什么,但如果您强制数组大小为整数,它将为您提供一些信息(如果您更改数组d的大小)。。。更多信息

a=rand(10)
b=rand(5,32)
c=5
d=rand(5,32);

[rand(Normal(0,a[end]+0.5*(1-b[n])),c,floor(Int,length(b[1,:])*d[n]/c)) for n=1:length(b)]

不是100%确定你想做什么,但是如果你强制数组大小为整数,它会给你一些东西(如果你改变数组d的大小)。。。更多信息

a=rand(10)
b=rand(5,32)
c=5
d=rand(5,32);

[rand(Normal(0,a[end]+0.5*(1-b[n])),c,floor(Int,length(b[1,:])*d[n]/c)) for n=1:length(b)]

该错误消息只表示您试图用数组除整数。。。想必你是想做相反的事?话虽如此,当我尝试运行上面的代码时,我得到了一个完全不同的错误消息(
没有匹配rand(::Distributions.Normal{Float64},::Int64,::Float64)
)(即,在定义试图生成的随机数组的大小时,您试图使用Float而不是Int);大概是因为julia会自动将整除整除的结果转换成浮点。你想得到什么形状?你不能让一个浮点数作为一个尺寸?!代码似乎没有以给定的形式运行。例如,
d[n]
是一个浮点十进制数,它乘以由
rand
生成的矩阵的宽度。我做了一次编辑,很抱歉造成任何混乱。“d”应该是1:5,而不是兰特(5)。谢谢大家的帮助!该错误消息只表示您试图用数组除整数。。。想必你是想做相反的事?话虽如此,当我尝试运行上面的代码时,我得到了一个完全不同的错误消息(
没有匹配rand(::Distributions.Normal{Float64},::Int64,::Float64)
)(即,在定义试图生成的随机数组的大小时,您试图使用Float而不是Int);大概是因为julia会自动将整除整除的结果转换成浮点。你想得到什么形状?你不能让一个浮点数作为一个尺寸?!代码似乎没有以给定的形式运行。例如,
d[n]
是一个浮点十进制数,它乘以由
rand
生成的矩阵的宽度。我做了一次编辑,很抱歉造成任何混乱。“d”应该是1:5,而不是兰特(5)。谢谢大家的帮助!亚历山大,“地板”正是我想要的。我错误地说d是一组随机数(这是我的一个错误),但是你的代码创建了正确的数组。我错误地说d是一组随机数(这是我的一个错误),但您的代码创建了正确的数组。