TA的每日心情 | 开心 2022-1-21 15:08 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
你的矩阵每层都对称,利用对称性,哪怕全写循环嵌套,也可以省大约一半的计算量。
2 ?. B. @+ O. k! w+ Tfor t = 1 : S
' ?, i) W9 r8 B4 x" u for m = 1 : K. _9 N0 _# N. H* e% m3 D
for n = m : K( Y! y, L, j+ S! r/ N4 f1 i6 \3 Z/ o
E2( m, n, t ) = ( sum( G( 1 : K, m, t ) ) + sum( G( 1 : K, n, t ) ) ) * K;
9 N5 y6 C7 c* l* n3 P9 q/ R1 X. d E2( n, m, t ) = E2( m, n, t ); % 对称性
; B0 l6 }0 \( f7 v. |2 s3 G end
R0 q2 _8 n3 f4 c% r end) K0 }) g# j2 M( I
end
7 n4 F& _; E; r3 q4 R当然更简单的方法是根据规律直接计算每层& C: Z5 k6 r2 Q0 t. T# T3 d: j
for t = 1 : S
$ ^, S( u [! j6 ?, h M = sum( G( :, :, t ) ).' * K * ones( 1, K );* N+ o; x9 D8 V; d
E3( :, :, t ) = M.' + M;
$ G& I$ T: F3 Q; y! d. s" W4 Uend. V j+ \) B; J7 o. Q
在K = 50; S = 20; 时
- |- f+ P, X- h7 ]原始计算方法历时 1.852707 秒。4 {# Y% K( B4 ~: @& D5 [% M
利用对称性计算,历时 0.274421 秒。
( x1 c5 K5 t& K' a& i- _利用规律逐层就散,历时 0.005905 秒。 |
|