我可能误解了这个问题,但我认为你可以这样做(为了说明起见假设 3 个产品):
tr_product_1 = [0 2.82 4.24 5.83 4.12 0;
2.82 0 1.41 3.16 2.23 2.82;
4.24 1.41 0 2 2.23 4.24;
5.83 3.16 2 0 2.23 5.83;
4.12 2.23 2.23 2.23 0 4.12;
0 2.82 4.24 5.83 4.12 0]
cost_matrix = zeros(6,6,3)
cost_matrix[:,:,1] = tr_product_1
然后为其他产品(例如tr_product_2和tr_product_3)编写二维源-目的地矩阵并重复该过程。为了便于说明,我只使用了一个乘数:
tr_product_2 = 1.2 * tr_product_1
tr_product_3 = 1.5 * tr_product_1
cost_matrix[:,:,2] = tr_product_2
cost_matrix[:,:,3] = tr_product_3
cost_matrix
6×6×3 Array{Float64,3}:
[:, :, 1] =
0.0 2.82 4.24 5.83 4.12 0.0
2.82 0.0 1.41 3.16 2.23 2.82
4.24 1.41 0.0 2.0 2.23 4.24
5.83 3.16 2.0 0.0 2.23 5.83
4.12 2.23 2.23 2.23 0.0 4.12
0.0 2.82 4.24 5.83 4.12 0.0
[:, :, 2] =
0.0 3.384 5.088 6.996 4.944 0.0
3.384 0.0 1.692 3.792 2.676 3.384
5.088 1.692 0.0 2.4 2.676 5.088
6.996 3.792 2.4 0.0 2.676 6.996
4.944 2.676 2.676 2.676 0.0 4.944
0.0 3.384 5.088 6.996 4.944 0.0
[:, :, 3] =
0.0 4.23 6.36 8.745 6.18 0.0
4.23 0.0 2.115 4.74 3.345 4.23
6.36 2.115 0.0 3.0 3.345 6.36
8.745 4.74 3.0 0.0 3.345 8.745
6.18 3.345 3.345 3.345 0.0 6.18
0.0 4.23 6.36 8.745 6.18 0.0
在这种情况下,3 维矩阵的形式为 [source, destination, product],但我认为这与 Julia 的布局方式更有效。