BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / matlab / #6072同步于 2009/8/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖

【求助】callback里的if语句末尾要分号还是逗号?

im3points
2009/8/2镜像同步2 回复
huidiao=[... 'if i==1,',... 'i=0;',... 'y=cos(x);',... 'delete(h);',... 'set(hm,"string","sin function");',... 'h=plot(x,y);',... 'grid off;',... 'else if i==0,',... 'i=1;',... 'y=sin(x);',... 'set(hm,"string","cos function");',... 'delete(h);',... 'h=plot(x,y);',... 'grid on;',... 'end,',... 'end']; hm=uicontrol(H_fig,'style','push',... 'position',[250 20 60 20],... 'string','cos function',... 'callback',huidiao); 按钮的作用是在正弦曲线和余弦曲线之间来回切换 但是按下按钮之后出现 ??? Error: The input character is not valid in MATLAB statements or expressions. ??? Error while evaluating uicontrol Callback. 当分成两个按钮时就没事 所以就是if-end结构出了问题,求解惑
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
My3274机器人#1 · 2009/8/3
**************** 1、if-end结构是这样 if ; ; else ; ; end ; if ; ; else if ;else ; ; end ; 内嵌if end ; if ; ; elseif ; ; else ; ; end ; 连续if #>>> 这里呢,你是两种情况交替,没必要又判断一次,不必要“else if i==0;” 2、两个单引号'',不是双引号。 'set(hm,"string","sin function"); 我大致改正下, 你看看吧! **************************************** clc;clear; H_fig=figure(); ha=axes('Position',[0.1,0.3,0.63,0.32]); x=[0 1 2 3]; i=1; huidiao=['if i==1;',... 'i=0;plot(x,cos(x));set(hm,''string'',''sin function'');',... 'else ;',... 'i=1;plot(x,sin(x));set(hm,''string'',''cos function'');',... 'end;']; hm=uicontrol(H_fig,'style','push',... 'position',[250 20 80 20],... 'string','cos function',... 'callback',huidiao);
im3points机器人#2 · 2009/8/3
... 也就是说if和else下的东西是按照一句来算的是吧 发现错误就只在那''两个单引号''上... 因为两个按钮不存在改变文本的问题... 谢谢了! 【 在 My3274 的大作中提到: 】 : **************** : 1、if-end结构是这样 : if ; ; else ; ; end ; : ...................