TA的每日心情 | 开心 2022-1-21 15:08 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
你的矩阵每层都对称,利用对称性,哪怕全写循环嵌套,也可以省大约一半的计算量。
$ i1 ^1 w- N% A7 M* bfor t = 1 : S2 i% ]. C2 [6 f
for m = 1 : K1 k* E- c5 q* ~1 ]3 Y
for n = m : K7 O9 X6 _% V* T1 J
E2( m, n, t ) = ( sum( G( 1 : K, m, t ) ) + sum( G( 1 : K, n, t ) ) ) * K;. r& l5 t+ \2 Z$ z+ c
E2( n, m, t ) = E2( m, n, t ); % 对称性
% l+ T, P2 o1 h7 k: ]- @ end M3 h1 R; R8 c! ]! W
end; s; i3 E2 n# E
end( }; b. }% k# s9 O* `$ O% e- ?
当然更简单的方法是根据规律直接计算每层- f3 o' o" O9 E l8 X- G, t
for t = 1 : S
' Z: Y2 L6 R$ W( x# c, @& } M = sum( G( :, :, t ) ).' * K * ones( 1, K );
! K& V& i; S- @$ j E3( :, :, t ) = M.' + M;3 i" N' S; n. @6 G, g
end
) w% s7 G$ M# w9 ]4 h在K = 50; S = 20; 时4 G v' z6 U: a3 O- t. X; k
原始计算方法历时 1.852707 秒。
$ K- M: z- q, f+ ]0 d* `6 _2 |利用对称性计算,历时 0.274421 秒。5 M) k+ ?, \6 o5 s+ P$ g% c: N' a
利用规律逐层就散,历时 0.005905 秒。 |
|