当你在Julia中索引矩阵时,如果所选的是单列或单行,则结果将表示为向量。同样地,当你索引单个点时,你会得到该点的值,而不是一个1x1的矩阵。
然而,在我的用例中,我也希望答案是一个矩阵,因为向量的方向具有意义,我不想失去它。
因此,考虑以下示例矩阵:
然而,在我的用例中,我也希望答案是一个矩阵,因为向量的方向具有意义,我不想失去它。
因此,考虑以下示例矩阵:
julia> A = [1 2; 3 4]
2×2 Matrix{Int64}:
1 2
3 4
我得到:
julia> A[:, 1]
2-element Vector{Int64}:
1
3
julia> A[1, :]
2-element Vector{Int64}:
1
2
julia> A[1, 1]
1
但是我想要:
julia> A[:, 1]
2×1 Matrix{Int64}:
1
3
julia> A[1, :]
1×2 Matrix{Int64}:
1 2
julia> A[1, 1]
1×1 Matrix{Int64}:
1
有没有简单的方法来实现这个?
目前我做了以下操作:
function getindex_asmatrix(A::Matrix, i, j)
# If i & j are Integers convert point to 1x1 Matrix
# If only j == Integer make a nx1 Matrix
# If only i == Integer make a 1xm Matrix
# else do A[i, j]
end
但我觉得可能会有更优雅的解决方案。