EDA365电子论坛网

标题: 如果想用plot的话应该如何修改? [打印本页]

作者: canpcbpp    时间: 2020-6-24 13:28
标题: 如果想用plot的话应该如何修改?
本帖最后由 canpcbpp 于 2020-6-24 14:06 编辑
: v& d9 q- o- {& u$ H3 ?7 s8 q! G! k8 Y4 Q" q* k" C2 C/ B
% j  v' H' u+ O) l7 B8 {! Q; h, u
本人MATLAB新手,今天写了一段代码想生成payoff曲线,可是只有figure,曲线显示不出来,然而换成scatter就可以,想问问大神原因是什么,如果想用plot的话应该如何修改?
# D/ r# Q* a8 \; V5 I代码见附件,感谢!" u# ~2 l" E8 @0 C0 {7 L7 o: }
$ n- g3 O1 H' l8 Q9 \* {0 r  a+ A
GibbsEnergy.rar (1.77 KB, 下载次数: 0)
. u4 ?- F0 T  n7 v% A test.rar (321 Bytes, 下载次数: 0)
作者: fanichicl    时间: 2020-6-24 14:09
, u2 Z5 i% S: ~
在test.m中的循环里面把绘图语句改成4 P1 m( Y" ~7 Y' P9 L
plot(T,x(7)-(T/2000)^2,'o');
; k/ V* h. A" K2 e: i6 l, w& k7 r! W! ~# u# p
- I: x& Y; |2 T8 v
就是了( T0 h6 D. r2 J. v, ^. e
因为plot默认是画相邻点之间的直线,但循环每一步只计算出了一个点,不能与相邻的点连接起来,数据点本身没有图示进行绘制,导致看不到整体曲线,使用'o'等命令令其将每一个数据点的图示都绘制出来,就能看见了
+ c& C4 _) L" M: O7 g/ R
! {, w/ G* q$ \更一般的做法是将循环计算的数值存入向量,最后对向量进行绘图" u7 Q3 v- [3 g3 ?0 v4 R$ W
Draw_X = []; Draw_Y = [];
8 F+ l7 E6 G- e; d" R9 A* p, yfor T=600:5:1600
1 Z3 @' p4 [: F8 O' b/ ?# q7 m  u    fun = @(n)GibbsEnergy(T,n);$ P- @) _! E$ G7 X( v# G
    x=fmincon(fun,n0,A,B,C,C_i);1 A/ x" {! n: t  I
    Draw_X = [Draw_X;T];2 {0 g6 i5 l" ?3 r2 P6 i$ |0 N' {  ?
    Draw_Y = [Draw_Y;x(7)-(T/2000)^2];
$ ~+ D9 y5 t" k2 Zend
6 W/ J3 g0 Y. `" o% }4 O/ Lfigure
" m- D  v  c1 j1 i0 I/ n+ oplot(Draw_X,Draw_Y);; N, F- {- c; A) m6 u
hold on;. U% U! n0 z* z* C: m9 Q" G* Z
xlabel('T');
% h+ Y: E  r. {$ H. Z& ?8 O9 }. uylabel('payoff');
作者: Ferrya    时间: 2020-6-24 18:38
要存入向量。




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