EDA365电子论坛网

标题: Matlab关于hold on的疑问 [打印本页]

作者: whatever_    时间: 2022-9-27 15:32
标题: Matlab关于hold on的疑问
自己感觉hold on是保持住,然后方便后面的往现有的图上面加,但是结合下面一段程序有段话不太理解。
. ^$ p3 R! Z. J$ D7 }* Pfor ii=5:10:80
3 f8 n5 |$ Q+ l+ [% g: \$ @    theta=ii;
. V# N6 x! X6 J' D* ~    vxo=vo*cos(theta*conv);* Y4 F: H5 O9 o5 C; @/ u: M
    vyo=vo*sin(theta*conv);$ b- s* A. d9 d1 ^  C+ a& X
    max_time=-2*vyo/grav;+ f: A9 A' A4 P, s; A* U. [0 s4 h; `2 b
    x=zeros(1,21);6 N+ L/ I1 `8 {/ T5 R: X
    y=zeros(1,21);
' Z9 [2 d5 D( m7 [    for jj=1:21, w! Y# K4 M. N. H5 U
        time=(jj-1)*max_time/20;
  [$ q$ _3 c4 f$ x0 F' K        x(jj)=vxo*time;
7 c+ A! t3 Q7 N2 K        y(jj)=vyo*time+0.5*grav*time^2;
7 N2 y# g$ n, e; Q" @    end
, y8 x$ m( b9 e4 W& O; B- i1 y4 D    plot(x,y,'g');
! T! H- Q1 b2 Y" T9 t: A( i" X* W    if ii==5
. |: c) X% W$ q' U" h  u+ N        hold on;) }( S) k) O9 u  q0 B( S& x
    end
4 S0 @- _, W7 Q0 n$ U, cend9 H" Y% a% S2 s% W* q
此处是一个绘图程序,但不知道
: Q8 K: z; A. g8 k3 F6 }6 m  J7 b    if ii==5: n- E5 s0 G, h; W
        hold on;* u8 i2 \" ?! C
    end: p- q1 U* \. q( z' c, Y
这句有什么用,请指教!
作者: I_believe    时间: 2022-9-27 16:27
这要看你的程序要实现什么样的意图和效果* ^1 ]0 L$ {8 t
单纯看程序,没有背景是比较难说出其效用的
. T9 N6 @- g! ~1 `6 y8 u* Y0 y9 ?! R* |' `1 @7 S2 V
这里与在循环外放一个hold on没什么区别
+ {# F/ j# I6 j6 Q估计程序作者是不想每次循环都执行hold on$ m% b# |& s/ Z
所以在一个值后打开,hold on' A  n+ Z' Z- F8 x8 C* X9 t
后面画的图就都加在原来的图上了
作者: duhe3hfu    时间: 2022-9-27 16:48
hold on是对figure设定属性而起作用的
& B2 b+ t/ s3 }  D: L只要没有新生成figure对象, b: E6 H  Z. G! C
hold一次开关对该figure永远有效。




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