|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
我通过for循环求解一个带有变系数微分方程后,plot出各个方程的曲线,想将各个曲线对应legend打印出来,但是始终无法成功,不知道哪里出了问题,代码如下:
( Y& Z' z9 x5 L$ Y/ sc = (4-19.2/2)*pi/180;7 _6 \: |' h- f, U) l) e, [* v8 g: I
R1 = 38;
! t/ B6 R+ G# ?: K, b9 s* H0 M; I8 Kt1 = 5*pi/180;. P! h% ^/ T" V+ ~" J' u$ Q: R
t2 = pi/2;- q% e; `( U) P! {6 ~/ N: W; l
A=R1.^2 * sin(t1) * tan(t1) * tan(t2/2);
7 }, d6 _& e1 {2 \
( G* K' {" ~ J0 ^: BS={'aaa'};% 定义一个元胞数组,并随意存储一个字符串
8 C. k+ l8 G' W) j% O2 E0 }for KB = [0, 0.2, 0.4, 0.6, 0.8, 1] U2 A% u4 x5 B" p$ B
a1 = (2*1500*9*0.8*10^6/20)/(1500*9*13888.2*(2*1.313+KB+1)/60);
5 i. W- B5 S6 }0 k b1 = 1500/(2*1.313+KB+1);$ I- ?2 H, D5 U7 E5 F
y0 = 0.1;
9 A5 o4 R( p' S5 Q4 y) z yp0 = b1*sin(c);
) V: [7 ?. N: K8 c; ? [x,y] = ode15i(@(x,y,yp)yp - a1*(A*x.^2)*sqrt(abs(35-y))*sign(35-y) - b1*sin(c+x) , [0, 19.2*pi/180], y0, yp0);
# z# H: i$ l7 v/ Y2 V h = plot(x,y);+ ^ f% ]$ F8 e/ _) C2 N
kb = sprintf('KB=%.1f',KB);%将KB的转化为字符串存在一个变量中0 L6 O3 B) }8 [& L/ F* N, v0 C8 J
S(i) = cellstr(kb);%将变量kb存储在S元胞数组中7 J4 [/ ^4 d. ]
hold on% E0 a6 @* E3 x) o( Z7 d
end
, `: o5 H: E$ q" U" s: X8 alegend(S);; R6 F: D1 t) l, `1 \
grid" o' Q" g& t7 L
2 T: ?% N) a) V3 R7 j2 v3 C
此外,能否在for循环中使每个plot出来的曲线的线型不一样,比如说KB=0时是虚线,KB=1时是实线等等
& s# D' k) S* H" f/ [请教大神,非常感谢!
+ |+ S' b" ^' }* D, W6 ^出现的问题如下图, |* h1 V3 G1 t- ?1 U
7 X! _5 V+ Z& Z6 Q4 z1 s1 [9 e
7 C' h: B- R2 @/ L Q
" W& h1 _2 p$ y1 C* C9 }
|
|