鉴于A(I,J,K)
I
= 1,2,3和J
= 1,2,3,我想采用以下数额
B(K) = c(1)*c(1)*A(1,1,K) + c(1)*c(2)*A(1,2,K) + c(1)*c(3)*A(1,3,K) + &
c(2)*c(1)*A(2,1,K) + c(2)*c(2)*A(2,2,K) + c(2)*c(3)*A(2,3,K) + &
c(3)*c(1)*A(3,1,K) + c(3)*c(2)*A(3,2,K) + c(3)*c(3)*A(3,3,K)
对于I
和J
的大值来说很麻烦,c(I)
和c(J)
是每个I
或J
的常量。
如何更有效地编写此代码?我认为DO WHILE
循环可能是答案,但我是初学者,无法弄清楚如何做到这一点。有人可以给我一个提示吗?
我的尝试:
DO K = 1,100
J = 1.d0
DO WHILE (J .LE. 3)
I = 1.d0
DO WHILE (I .LE. 3)
A(I,J,K) = c(I)*c(J)*A(I,J,K) ! + ???
I = I + 1.d0
END DO
END DO
END DO
答案 0 :(得分:3)
只需对J使用do循环,就像你对K所做的那样。累计B(K)中的和,从0开始。
DO K = 1,100
B(K) = 0
DO J = 1,3
DO I = 1,3
B(K) = B(K) + c(I)*c(J)*A(I,J,K)
END DO
END DO
END DO