Julia 语法混乱:函数调用与数组索引

Julia 语法混乱:函数调用与数组索引,julia,Julia,原标题:“朱莉娅的克罗内克产品” 假设: p = 0.7; PI = [p 1-p;1-p p]; 以及: 在Matlab中,我们可以运行: A=kron(PI(j,:),Q) 在朱莉娅期间: A=kron[PI[j,:],Q] 这会导致以下错误: MethodError: no method matching getindex(::Base.#kron, ::Array{Float64,1}, ::Array{Float64,2}) 如何解决这个问题并获得类似

原标题:“朱莉娅的克罗内克产品”

假设:

 p       = 0.7;
 PI      = [p 1-p;1-p p];
以及:

在Matlab中,我们可以运行:

A=kron(PI(j,:),Q)
在朱莉娅期间:

A=kron[PI[j,:],Q]
这会导致以下错误:

MethodError: no method matching getindex(::Base.#kron, ::Array{Float64,1}, ::Array{Float64,2})

如何解决这个问题并获得类似于Matlab的结果?

在Matlab中有两种使用
()

A=kron(PI(j,:),Q)
外部()围绕着传递给
kron
函数的参数,内部()提供PI的索引。在Julia(以及Python、C和许多语言)中,我们使用不同的符号来实现这两个截然不同的目的

在Julia中,我们使用方括号
[
]
进行索引,并使用
包围函数参数

因此:


在Matlab中的行中有两种使用
()

A=kron(PI(j,:),Q)
外部()围绕着传递给
kron
函数的参数,内部()提供PI的索引。在Julia(以及Python、C和许多语言)中,我们使用不同的符号来实现这两个截然不同的目的

在Julia中,我们使用方括号
[
]
进行索引,并使用
包围函数参数

因此:


这是上面的输入错误,否则错误会有所不同。0.6版可以正常工作。您使用的是哪个版本?这是生成错误的完整表达式,还是源代码行的一部分?(与您的来源重新检查)我使用0.5.0。让我查一下。。。谢谢输入错误很可能是使用方括号而不是圆括号的
kron
函数调用。您确定错误与该代码匹配吗?这是一个getindex错误,这使您看起来好像真的做了与
kron[[1.0],[1.0 2.0]]
——尝试索引到
kron
函数中。这是上面的一个输入错误,否则错误会有所不同。0.6版可以正常工作。您使用的是哪个版本?这是生成错误的完整表达式,还是源代码行的一部分?(与您的来源重新检查)我使用0.5.0。让我查一下。。。谢谢输入错误很可能是使用方括号而不是圆括号的
kron
函数调用。您确定错误与该代码匹配吗?这是一个getindex错误,它使您看起来好像真的做了与
kron[[1.0],[1.0 2.0]]
——尝试索引到
kron
函数中。
julia> kron(PI[1, :], Q)
40×20 Array{Float64,2}:
 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  …  0.0  0.0  0.0  0.0  0.0  0.0  0.0
 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0     0.0  0.0  0.0  0.0  0.0  0.0  0.0
 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0     0.0  0.0  0.0  0.0  0.0  0.0  0.0
 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0     0.0  0.0  0.0  0.0  0.0  0.0  0.0
 [etc.]