如何在Julia中更改矩阵?

如何在Julia中更改矩阵?,julia,Julia,你能帮帮我吗? 我有这个矩阵 > rout 4×5 Array{Int64,2}: 0 1 4 0 2 0 3 0 1 2 0 2 4 0 3 0 1 4 2 3 该矩阵的每一行都有一些部分。例如,第一行有两个部分。第一节包括1,4,第二节包括2,最后一行有一节1,2,3,4。我想得到一个矩阵,其中每排座位的节数作为另一个矩阵的值(nrout[I,j])。 对于前rout矩阵,可以制作此nrout(nrout的列为1,2,3,4) 相反,1 inr

你能帮帮我吗? 我有这个矩阵

> rout
4×5 Array{Int64,2}:
 0  1  4  0  2
 0  3  0  1  2
 0  2  4  0  3
 0  1  4  2  3
该矩阵的每一行都有一些部分。例如,第一行有两个部分。第一节包括1,4,第二节包括2,最后一行有一节1,2,3,4。我想得到一个矩阵,其中每排座位的节数作为另一个矩阵的值(
nrout[I,j]
)。 对于前
rout
矩阵,可以制作此
nrout
nrout
的列为1,2,3,4)

相反,1 in
rout
nrot
中坐1个(第1节的编号)。相反,4将1(第1节的编号)放入
nrout
。相反,2将2(第2节的编号)放入
nrout


你能帮我看看这个矩阵是如何在茱莉亚制作的吗

我会使用循环来解决这个问题:

function getnrout(rout)
    # assume we have at least one 0 in each row in column 1
    nrout = zeros(Int, size(rout, 1), size(rout, 2) - 1)
    for i in axes(rout, 1)
        section = 0
        for j in axes(rout, 2)
            v = rout[i,j]
            if v == 0
                section += 1
            else
                nrout[i, v] = section
            end
        end
    end
    return nrout
end

我删除了“jump”标签,因为这并不是关于jump的(除非你解释清楚原因)。而且,我不清楚你在问什么;您能再解释一下
nrout
的其他行与
rout
的关系吗?然后我们会有更多的例子。谢谢。Nods分别出现在nrout的rout{1,2,3,4}make列中。我非常感谢。但是当代码运行时。它有这个错误。我使用
Int(Axis(rout,1)
来解决这个问题,但它不起作用。错误是
MethodError:没有方法匹配start(::axisarray.Axis{:row,Base.OneTo{Int64})[0m最接近的候选对象是:start([91m::SimpleVector[39m])at essentials.jl:258 start([91m::Base.MethodList[39m)at reflection.jl:560 start([91m::ExponentialBackOff[39m)错误。jl:107
此外,使用AxisArray是因为Axis未知。这是问题吗?如果您没有Axis,您可能使用比Bogumił更旧的Julia版本。我认为它以前是
索引
。是的。它现在起作用了。您能告诉我Julia的哪个版本更适合安装它吗没有bug?非常感谢。我建议使用Julia 1.1。当然,最好不要使用Julia 0.6或更早版本,因为它们没有维护。您也可以编写
1:size(rout,2)
,而不是
axes(rout,2)
——这在正常情况下是相同的(除非您使用的是带有非标准轴的矩阵)。
function getnrout(rout)
    # assume we have at least one 0 in each row in column 1
    nrout = zeros(Int, size(rout, 1), size(rout, 2) - 1)
    for i in axes(rout, 1)
        section = 0
        for j in axes(rout, 2)
            v = rout[i,j]
            if v == 0
                section += 1
            else
                nrout[i, v] = section
            end
        end
    end
    return nrout
end