EDA365电子论坛网

标题: 双层嵌套循环赋值怎么优化? [打印本页]

作者: 勇往直前11    时间: 2021-1-15 13:34
标题: 双层嵌套循环赋值怎么优化?
代码如下k=1;
' p# Y: M% Q( |3 E- `0 Ufor i=1:788    for j=i+1:788
0 R- M9 H) n4 V/ p9 H. g0 F# @7 h        P(k,1)=i;4 F! V: B& x* Z0 F" F
        P(k,2)=j;; j- n; ~; X. ]$ J
        k=k+1;! ~' Z3 L% [( _) a( J6 z: i
    end: Q( s7 f2 R4 ?9 B5 B$ e) G
end7 ^* x8 [8 [' r2 `9 ~  Z3 d1 v
8 H# x( ?' m( w+ K" h5 e
很简单的代码,但是运行非常耗时要运行几天看起来.求向量化怎么改,或者简化就行1 L/ R* R5 Z. W2 y' O+ I5 ?

作者: llbnmo    时间: 2021-1-15 13:46
帮你顶一下
作者: IBB-EUT    时间: 2021-1-15 16:03
' l. j* T6 q4 M0 X( ^) X+ W
在循环开始前,预设好矩阵P的维度,就可以大幅节省时间了2 F7 m* H( p' K' t
N = 788;
  B( w: f- n& C2 Q% [P = zeros( N * ( N - 1 ) / 2, 2 );
作者: zzz.dan    时间: 2021-1-15 16:58
N = 788;
7 ~# s8 X3 T& t# s4 mM1 = tril( ones( N - 1, 1 ) * [ 1 : N - 1 ] );
( E( N. I3 H% }5 k0 x% x: ~M2 = tril( [ 2 : N ].' * ones( 1, N - 1 ) );
# \4 J: Y. ~% z2 B: ~, _! n$ o" G/ GP = [ M1( M1~=0 ), M2( M2~=0 ) ];4 _# w* l7 I9 K5 t( x( Z





欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2