Julia 将参数转换为复合类型

Julia 将参数转换为复合类型,julia,Julia,我仍在熟悉朱莉娅的工作方式,我遇到了一个我无法克服的奇怪错误: 我有一个复合类型声明如下 type Mesh domain::Tuple resolution::Tuple stepsize::Tuple data::Array{TransferFunction, 2} 其中TransferFunction是我定义的另一个复合类型 当我尝试使用构造函数创建这种类型的实例(带有空TransferFunction数组)时 my_mesh = Mesh((100, 1

我仍在熟悉朱莉娅的工作方式,我遇到了一个我无法克服的奇怪错误:

我有一个复合类型声明如下

type Mesh
    domain::Tuple
    resolution::Tuple
    stepsize::Tuple
    data::Array{TransferFunction, 2}
其中TransferFunction是我定义的另一个复合类型

当我尝试使用构造函数创建这种类型的实例(带有空TransferFunction数组)时

my_mesh = Mesh((100, 100), (100,100), (1, 1), Array(TransferFunction, 2))
我收到以下错误消息:

ERROR: `convert` has no method matching convert(::Type{Array{TransferFunction,2}}, ::Array{TransferFunction,1})
我不确定数组(TransferFunction,1)来自哪里。我假设这是一个简单的问题,有一个简单的解决方案,但在深入研究Julia文档之后,我一直无法找到为什么会出现这种错误消息

有人有什么想法吗?

数组(TransferFunction,2)
不会创建二维矩阵-它是一个2元素向量。但是
数组{TransferFunction,2}
是任意大小的二维矩阵的类型。你打算做什么

如果确实需要传递函数矩阵,可以将
Array(TransferFunction,2)
更改为
Array(TransferFunction,2,1)
,也可以将类型声明从矩阵更改为向量:
Array{TransferFunction,1}
。数组构造函数参数和类型参数看起来很相似,但含义却截然不同,这让人有点困惑


有助于避免这种混淆的一种方法是在声明中使用
矩阵
向量
类型别名,例如
向量{TransferFunction}
而不是
数组{TransferFunction,1}

完美!谢谢你的帮助。从
Array()
的定义来看,我的印象是
Array(TransferFunction,2)
创建了一个传递函数的二维矩阵。谢谢你的澄清!