|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
我通过for循环求解一个带有变系数微分方程后,plot出各个方程的曲线,想将各个曲线对应legend打印出来,但是始终无法成功,不知道哪里出了问题,代码如下:
1 {2 ?$ e& L6 V( p* D# ]7 sc = (4-19.2/2)*pi/180;
7 a2 Q' m! d; E3 q9 rR1 = 38;& g7 b: |' y# L
t1 = 5*pi/180;
$ D" |% n4 D' x, q e" e7 C* Q- |& Vt2 = pi/2;
1 R6 k: ~* s4 o# n6 ~A=R1.^2 * sin(t1) * tan(t1) * tan(t2/2);
) q" h6 {# l/ c# d6 B5 l$ G
8 ^ k' X4 V! `S={'aaa'};% 定义一个元胞数组,并随意存储一个字符串
) _: b; p4 N) Z. Rfor KB = [0, 0.2, 0.4, 0.6, 0.8, 1]0 U/ O0 [- L9 n9 Q/ K. O1 `/ B
a1 = (2*1500*9*0.8*10^6/20)/(1500*9*13888.2*(2*1.313+KB+1)/60);
5 H# O; I) L# P1 i2 d2 g b1 = 1500/(2*1.313+KB+1);) L9 V" j+ S; | T* g
y0 = 0.1;
- _) z$ l- ` K3 ^& W4 j- J' {) W yp0 = b1*sin(c);
2 d4 |8 U# Y4 P+ {2 e5 D [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);
- G; O) g: z+ Q+ I0 \+ C" V' k! w3 y" L h = plot(x,y);) _6 T# n/ u, O% L
kb = sprintf('KB=%.1f',KB);%将KB的转化为字符串存在一个变量中
) B3 z) d3 x4 g% `& Y( a S(i) = cellstr(kb);%将变量kb存储在S元胞数组中8 b* c$ }! s1 G0 [3 e C# a
hold on
' d6 n% y# x5 R: q; o* A* S, Bend
5 i5 A" D3 r% y% |5 [4 [legend(S);# j# A/ C2 u8 s4 y0 V
grid' E! w9 [( p' E
& v% U6 z7 R, f7 C: h% A$ V此外,能否在for循环中使每个plot出来的曲线的线型不一样,比如说KB=0时是虚线,KB=1时是实线等等6 Q& O" l. S* s, |. a6 v
请教大神,非常感谢!/ _+ ?( S1 y* W/ i
出现的问题如下图
( d% X m0 D, Y6 V1 t9 K; y# i4 {
5 e& ^4 j5 h9 F/ U+ h9 d, a
4 K+ X3 f6 X# E
8 E7 H% a0 z0 b T' L7 X8 {9 t |
|