EDA365电子论坛网

标题: matlab多重循环问题,该怎么让程序按照希望的方式进行 [打印本页]

作者: uaidenp    时间: 2019-7-8 14:02
标题: matlab多重循环问题,该怎么让程序按照希望的方式进行

u(1)=0;

ki(1)=9000;

a(1)=3/ki(1)*2;

for i=2:4

  P; S' y" C8 P* o1 _1 K$ ~
u(i)=a(i-1)+u(i-1)if u(i)>2    ki(i)=0 else    ki(i)=9000    for m=2:4        a(m)=3/ki(m)*2        continue    endend

end

结果显示超出索引

请问要怎么让结果正常输出呢

像下面这样

左边是跑出来的结果

右边是我希望的结果

( ]( g8 v7 X  R0 w7 [* l7 `


' L, {7 e; b0 A! v


  r  q' g) l! L7 [

麻烦各位大神给点提示

谢谢啦!!!

( f1 }3 v; T$ |  `

; h9 V0 X1 N4 q$ i" f- p( t: e


0 d7 R9 u1 ]7 f$ _( P. ?, m$ H, Z
: ?; V4 ]0 n9 E3 h; o8 f
作者: Liberallh21    时间: 2019-7-8 18:10
if u(i)>2
6 _2 d4 O0 L/ \- s" E0 t! L    ki(i)=0 " R. `* y* N" W9 [. G
else
# F  [" o) L$ E7 u9 c    ki(i)=9000' n+ d# c0 u4 a/ ?9 R- S: A
    for m=2:4  x, [4 s- R, {# d* g! V6 g
        a(m)=3/ki(m)*2
/ C0 f9 Z4 D8 Z' A! H        continue
/ g6 G. y& s6 M8 O# q8 s    end
( n7 W. V* t' q  Z" S  iend  Z% }% z. x0 h
这里, u(i) <= 2的时候, for循环初始化a(m), 你的ki(m)初始化了吗?
0 m3 N5 u3 D3 Z, C5 r8 r: k
- s0 c& h* C9 H- }/ d3 E" @u = zeros(4, 1);) s0 w: X) ^. u5 _6 S* F* y% ]5 ^- m
ki = ones(4, 1) * 9000;3 M  M6 [) S2 @" c+ C# r
a = ones(4, 1) * 3/ki(1)*2;$ X0 R! \, `( w
' X4 J+ e$ ?/ `+ d7 k6 h4 }
for i=2:45 V0 s; ?* F0 o( x6 f  y' b  O

* l# U( C1 }: p4 Q    u(i)=a(i-1)+u(i-1);2 o' O/ ?1 M3 C, V" x/ Q  g9 c
    if u(i)>2
9 y# S4 p- g. n) M        ki(i)=0 ;
) Z* }& ~  @% P4 C9 i/ e) w    else
( `: Z" k# C& e        ki(i)=9000;
2 c$ F( j2 R. v9 c( C# R7 \  B        for m=2:4
% B1 [. Z3 \0 Z3 l0 x3 W3 u. |            a(m)=3/ki(m)*2;
* o, M3 \& p0 D3 v0 ~            continue
, M3 ^6 ]$ c2 J5 S7 S$ x        end) N; m! N8 A" v5 }! j+ \
    end
" v9 J) M7 N( q0 K+ \end/ S' v- ?2 D0 \* e  v, G% L6 t1 X
不知道这样行不行,也不知道计算对不对,你试一下哈




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