如何在Julia中更改矩阵?

时间:2019-06-11 06:28:37

标签: 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)

> nrout
4×4 Array{Int64,2}:
 1  2  0  1
 2  2  1  0
 0  1  2  1
 1  1  1  1

代替rout中的1个nrout中的1个席位(第1节的编号)。而是4在nrout中放入1(第1节的编号)。而是2在{{1}中放入2(第2节的编号)。

请您帮助我,如何在Julia中制作此矩阵?

1 个答案:

答案 0 :(得分:1)

我将使用循环来解决此问题:

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