|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
我通过for循环求解一个带有变系数微分方程后,plot出各个方程的曲线,想将各个曲线对应legend打印出来,但是始终无法成功,不知道哪里出了问题,代码如下:
, r& h& q3 z1 X4 Uc = (4-19.2/2)*pi/180;
' Z* p D! [% G! E+ s1 g8 DR1 = 38;2 @# b2 q, L/ J0 [
t1 = 5*pi/180;
' H! v! J$ y) Q: g0 Q* J6 | Q% xt2 = pi/2;, q" I+ I* j2 {& f* S3 U
A=R1.^2 * sin(t1) * tan(t1) * tan(t2/2);! m+ L; e/ C! {9 `) U* n
4 q& }! C" Z- A0 z1 ^+ L4 l
S={'aaa'};% 定义一个元胞数组,并随意存储一个字符串
& p" m* W1 O3 A# i9 E efor KB = [0, 0.2, 0.4, 0.6, 0.8, 1]8 R6 S: c3 `7 w
a1 = (2*1500*9*0.8*10^6/20)/(1500*9*13888.2*(2*1.313+KB+1)/60);
( N% A4 A' x& U5 S) V0 M b1 = 1500/(2*1.313+KB+1);+ Y5 k8 i* b. W# k
y0 = 0.1;
% J8 M6 s/ W0 s/ w1 S+ k+ t, D* B; G yp0 = b1*sin(c);
( ?. x! ~! J7 ^9 Y [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);
6 z) `$ z8 O( a h = plot(x,y);
$ Q3 R& s4 c5 z2 B, F kb = sprintf('KB=%.1f',KB);%将KB的转化为字符串存在一个变量中1 J/ R% Z! @, s$ E# i
S(i) = cellstr(kb);%将变量kb存储在S元胞数组中
8 U# u- @9 F" d6 ]; o hold on4 p+ d" S$ Y, ~, S) v! u1 h, u. e
end+ W6 A. l% v' H4 a( e5 S
legend(S);; o" D% Y; x2 i2 C: @; ^& ^
grid
/ O5 `$ @! s8 c; g
+ j8 ]* ?' z) g( C4 T2 O# ^此外,能否在for循环中使每个plot出来的曲线的线型不一样,比如说KB=0时是虚线,KB=1时是实线等等
6 }' E9 l! p( i' a% g: ]" Q( W请教大神,非常感谢!
4 z; Y* n! U1 z5 }( V2 E* F; E出现的问题如下图
5 a, D8 ~" b& r/ R! K
8 w a* X* w W% _5 i
7 z; i& u* N# W4 l
& d5 ~3 C7 K% A: o* u |
|