我可能误解了这个问题,但我认为您可以按照以下方式进行操作(为了说明起见,假设有 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 的布局方式。