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 o
plot(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& N
plot(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% q
for i=1:3
( A4 \* `8 b5 P. l' N2 o
eval([ 'plot(n',num2str(i),'(1,: ),n',num2str(i),'(2,: ),'LineWidth',2,'Color','r','LineStyle','-','Marker','o','MarkerSize',8)' ])
$ p& Q! f' Q# h3 n" b
end
" P A2 \4 c0 k" r# H
0 ]( S4 z# ^1 ?$ B- k9 ]0 r) P" s
0 T* o2 \) W9 ?
发现无法执行,将代码中的线宽、颜色、标记命令去掉发现可以执行
) V) g7 T) D5 S4 P7 f2 Y9 [1 y
for 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 ]. h
hold on; axis equal;
" c1 m5 A! w, u% \. P# T9 Q T
cmap = 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