如何优化该循环?

计算科学 矩阵 效率
2021-12-26 00:37:07

我需要填充一个矩阵Akl, 在哪里

k=(m1)J+n
l=(p1)J+q

m,p=1,2,...,I
n,q=1,2,...,J

它的组成部分是(mnpq)为了填充它,我使用了一个昂贵的 4 Do 循环

Do[
 Do[
  Do[
   Do[
    Print[m, n, p, q];
    k = (m - 1) nC + n;
    l = (p - 1) nC + q;
    If[k <= l, A[[k, l]] = cf[Nfunc, xi, yi, wix, wiy, m, n, p, q], 
     0];
    , {q, 1, J, 1}]
   , {p, 1, I, 1}]
  , {n, 1, J, 1}]
 , {m, 1, I, 1}]

知道Akl为一个I=J=2, 它的成分是(mnpq)

[(1111)(1112)(1121)(1122)(1212)(1221)(1222)symm.(2121)(2122)(2222)]

有谁知道一种更有效的填充方法?

0个回答
没有发现任何回复~