【发布时间】:2019-10-19 10:12:15
【问题描述】:
我正在用矩阵做一些相当简单的事情:
for i in 1:N
X=XT[1:2,i]
A[i]=X'*Sig*X+b
end
其中 XT 是我从 Matlab 导入的一个数组 (1×5 Array{Any,2}),通过这样做我得到了 Array{Float64,2} 类型的 X。而 Sig 是一个 2x2 矩阵,也是 Array{Float64,2}。
问题是:X'SigX 的结果是 Array{Float64,2} 类型,尽管只有一个元素。我无法将其与 b 相加。
我知道我可以放一个点并求和,但如果我这样做,我仍然会拥有这个数组类型,并将其存储在另一个数组中,这可能会很混乱。
有什么想法可以让它保持简单吗?
【问题讨论】:
-
A的维数是多少?它也是 Array{Float64,2},它的大小是多少?您希望求和的结果是存储在 A 中的数组还是只是存储在 A[i] 中的标量?
-
这很奇怪。
XT[1:2, i]应该是向量,而不是矩阵。很奇怪。 -
我希望将其存储为 Float64。 A 也应该是 Array{Float64,2}。
-
您能否编辑您的问题以包括阵列 A 和 XT 的初始化?如何做到这一点很重要。
-
我已经编辑过了。碰巧的是,我的数组 XT 不是普通矩阵。这就是问题所在。看来我可以做 XT[i][:] 并获得正确的尺寸,但我不知道为什么它不会以其他方式发生。
标签: arrays types casting julia