EDA365电子论坛网

标题: 该如何写函数呢? [打印本页]

作者: IRESSEMT    时间: 2020-5-12 14:04
标题: 该如何写函数呢?
本帖最后由 IRESSEMT 于 2020-5-12 14:05 编辑 4 Y8 D2 J' Y' i2 K* _
0 K! @, n  K7 a) ^
比如我有3个矩形,  n1 n2 n3,它们都有第一行和第二行数据,这里需要以第一行为自变量,第二行为应变量,画图它们的图像.
6 c# Z6 s# F1 B代码为:
* t* {' w& D' U1 oplot(n1(1,: ),n1(2,: ),'LineWidth',2,'Color','r','LineStyle','-','Marker','o','MarkerSize',8)9 G  t, C1 I) B# c" m" S2 i
plot(n2(1,: ),n2(2,: ),'LineWidth',2,'Color','r','LineStyle','-','Marker','o','MarkerSize',8)
4 [/ r  `' M7 W  S0 F, f4 z& Nplot(n3(1,: ),n3(2,: ),'LineWidth',2,'Color','r','LineStyle','-','Marker','o','MarkerSize',8)1 y" ^0 o1 X# f0 S' N2 y
. |1 t/ ?# ~, U" O2 C! Z* z
想用循环写出来:
3 D" Z2 {& @; L9 u% qfor i=1:3
( A4 \* `8 b5 P. l' N2 oeval([  'plot(n',num2str(i),'(1,: ),n',num2str(i),'(2,: ),'LineWidth',2,'Color','r','LineStyle','-','Marker','o','MarkerSize',8)'  ])
$ p& Q! f' Q# h3 n" bend
" P  A2 \4 c0 k" r# H0 ]( S4 z# ^1 ?$ B- k9 ]0 r) P" s
0 T* o2 \) W9 ?
发现无法执行,将代码中的线宽、颜色、标记命令去掉发现可以执行
) V) g7 T) D5 S4 P7 f2 Y9 [1 yfor i=1:3
/ z/ a3 d6 L4 Y, {" S5 Q8 C3 q2 d
eval([  'plot(n',num2str(i),'(1,: ),n',num2str(i),'(2,: )'  ])* o( y$ L' X) @
end
" `. ]9 u4 U, R' o1 d
8 H+ P+ ?0 v/ ?
7 H$ K# g  V" h* p) R' \其中     ,'LineWidth',2,'Color','r','LineStyle','-','Marker','o','MarkerSize',8  在eval函数无法运行,后来发现是由于这些语句中有字符1 x& U. K1 h2 V- U0 D0 h4 C

# G$ f) w1 j; a0 i2 F) z" ^那么若是eval的执行语句中存在有单引号的字符,该如何写函数呢?感谢!
- E( v+ a  E3 k( t5 L6 U4 z9 P; @
作者: Colbie    时间: 2020-5-12 15:00
+ V0 b( g+ H, U: C. S4 }+ w# }
需要在字符串中使用单引号时可以用char(39)来代替, D9 K6 ^. L5 j5 m5 }

, @: x1 m' O5 ]. hhold on; axis equal;
" c1 m5 A! w, u% \. P# T9 Q  Tcmap = parula(3);+ r2 y! ^' ?: n  h
for ii = 1:1:3
2 Q1 ~% \; O: b+ x/ |1 W) q    eval(['plot(n',num2str(ii),'(1,: ),n',num2str(ii),'(2,: ),',char(39),'LineWidth',char(39),',2,',...; o0 l5 j. X1 a. L# V! m
        char(39),'Color',char(39),',',char(39),num2str(cmap(ii,: )),char(39),',',...
; R) f% ]* \: W$ H5 m# l        char(39),'LineStyle',char(39),',',char(39),'-',char(39),',',...0 R( S0 R5 U5 x: ]( T/ E
        char(39),'Marker',char(39),',',char(39),'o',char(39),',',...- ^8 O1 s. k0 O: L' W3 s
        char(39),'MarkerSize',char(39),',8);']);7 ~! q2 @% g' I/ A# J
end




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