EDA365电子论坛网

标题: 不知道哪里出了问题 [打印本页]

作者: shelby    时间: 2020-5-27 16:24
标题: 不知道哪里出了问题
我通过for循环求解一个带有变系数微分方程后,plot出各个方程的曲线,想将各个曲线对应legend打印出来,但是始终无法成功,不知道哪里出了问题,代码如下:
- N. ?* _+ c" m; ?4 Q$ h3 b5 {6 Mc = (4-19.2/2)*pi/180;
) r8 b0 I7 l3 Y! p8 G2 C5 @4 c" yR1 = 38;1 M- V% Q5 b, X+ d( p( G
t1 = 5*pi/180;
4 Y) [! P9 j- A7 Jt2 = pi/2;
4 F5 N7 t7 j0 R3 m& TA=R1.^2 * sin(t1) * tan(t1) * tan(t2/2);
& R. `3 z# p9 b% W; ?& t9 C; ]9 B& ]5 l3 f7 B% s
S={'aaa'};% 定义一个元胞数组,并随意存储一个字符串6 k3 x6 J9 |7 U6 t5 z* |
for KB = [0, 0.2, 0.4, 0.6, 0.8, 1]: W/ O( T+ m5 G6 _5 s' H- C
    a1 = (2*1500*9*0.8*10^6/20)/(1500*9*13888.2*(2*1.313+KB+1)/60);
6 m) j5 B, H$ C: [0 ?: G    b1 = 1500/(2*1.313+KB+1);
3 H3 P* @' @, |$ |    y0 = 0.1;
) P. W+ \5 I$ `+ a+ p  P8 P    yp0 = b1*sin(c);1 D, h) u; r' O2 S* {) j5 ^+ R
    [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);
$ F! n' f, e8 Z% S' F' D) N    h = plot(x,y);" u* C# N$ y' A
    kb = sprintf('KB=%.1f',KB);%将KB的转化为字符串存在一个变量中
! ~) n! w, e2 `3 B    S(i) = cellstr(kb);%将变量kb存储在S元胞数组中/ }7 v5 \" r6 Z9 ?
    hold on. {' ?& }3 s. p+ J$ u) v
end
8 h4 R! [2 b- ~% k/ o- n, T/ O4 ]  e. zlegend(S);
; E) ]) v8 W) P+ ~7 s. |5 `grid7 |. x, F) \% a2 l# ]' N( q, x

2 Z# x5 x/ T3 b. m7 Y此外,能否在for循环中使每个plot出来的曲线的线型不一样,比如说KB=0时是虚线,KB=1时是实线等等
) I; [* P6 d) G: J  H请教大神,非常感谢!
, N  U% n8 {" P1 Q- ]- Q出现的问题如下图2 W- Z5 f9 k0 `- s
& f& p0 t$ B8 p* O" V
+ N7 I  a) e  e
9 h, {  t2 `0 q

作者: Taio    时间: 2020-5-27 16:38
; g2 O1 @6 f' j( c8 w$ Y
S(i) = cellstr(kb);这句话有问题吧- P% E) R9 w% F5 s$ L3 V# p+ l
不应该是
, ]) o- Q0 {8 b" X; H! _S{i} = cellstr(kb);吗?我没调试过,只是第一眼看见这个代码的感觉是这样的。




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