返回信息流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结构出了问题,求解惑
这是一条镜像帖。来源:北邮人论坛 / matlab / #6072同步于 2009/8/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖
【求助】callback里的if语句末尾要分号还是逗号?
im3points
2009/8/2镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
****************
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);
...
也就是说if和else下的东西是按照一句来算的是吧
发现错误就只在那''两个单引号''上...
因为两个按钮不存在改变文本的问题...
谢谢了!
【 在 My3274 的大作中提到: 】
: ****************
: 1、if-end结构是这样
: if ; ; else ; ; end ;
: ...................