我用matlab编一个“曲线转换按钮”的程序老是出错,求大神解答!

程序如下:h0=figure('position',[19856350300],...'name','实例');x=0:0.5:2*pi;y=sin(x);h=plot(... 程序如下:
h0=figure('position',[198 56 350 300],...
'name','实例');
x=0:0.5:2*pi;
y=sin(x);
h=plot(x,y);
grid on
huidiao=['if i==1 ','i=0;','y=cos(x);','delete(h);',...
'set(hm,"string","正弦函数");','h=plot(x,y);','grid on;',...
'else if i==0 ','i=1;','y=sin(x);','set(hm,"string","余弦函数");',...
'delete(h);','h=plot(x,y);','grid on;','end ','end']
hm=uicontrol(gcf,'style','pushbutton','string','余弦函数','callback',huidiao);
i=1;
set(hm,'position',[250 20 60 20]);
set(gca,'position',[0.2 0.2 0.6 0.6]);
title('按钮的使用')
hold on
提示错误是:Error while evaluating uicontrol Callback
但是怎么改都有错误,求大神解答!
展开
 我来答
dukinkin
推荐于2016-10-19 · TA获得超过1.3万个赞
知道大有可为答主
回答量:2444
采纳率:90%
帮助的人:943万
展开全部
h0=figure('position',[198 56 350 300],...
'name','实例');
x=0:0.5:2*pi;
y=sin(x);
h=plot(x,y);
grid on
huidiao=['if i==1,','i=0;','y=cos(x);','delete(h);',...
'set(hm,''string'',''正弦函数'');','h=plot(x,y);','grid on;',...
'elseif i==0,','i=1;','y=sin(x);','set(hm,''string'',''余弦函数'');',...
'delete(h);','h=plot(x,y);','grid on;','end'];
hm=uicontrol(gcf,'style','pushbutton','string','余弦函数','callback',huidiao);
i=1;
set(hm,'position',[250 20 60 20]);
set(gca,'position',[0.2 0.2 0.6 0.6]);
title('按钮的使用')
hold on

用字符串表示命令作为回调函数时时要注意格式
你的代码主要错误是两个
1不是用双引号而是用两个单引号
.....,set(hm,''string'',''正弦函数''),..........

2因为命令用字符串连起来,没有换行,所以原来要换行的地方不能简单用空格隔开而是要用逗号
['if i==1,' ............
飞跃梦想华
2014-08-08 · TA获得超过333个赞
知道小有建树答主
回答量:388
采纳率:89%
帮助的人:109万
展开全部

  主程序

function fun(varargin)

if nargin<1,

    Init;

else

    feval(varargin{:});

end

return;


    callback调用的函数

function huidiao()

x=0:0.5:2*pi;

C=get(gcf,'userdata');

h1=get(gca,'children');

h=C{1};i=C{2};

if i==0

    set(h,'string','正弦函数');

    set(h1,'xData',x,'yData',cos(x));

    set(gcf,'userdata',{h,1});

end

if i==1

    set(h,'string','余弦函数');

    set(h1,'xData',x,'yData',sin(x));

    set(gcf,'userdata',{h,0});

end

还有Init.m是初始化代码



你没用回调函数调用Callback所对应的函数当然会出错

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3c63e6c
2014-08-08 · TA获得超过2848个赞
知道大有可为答主
回答量:3829
采纳率:68%
帮助的人:2796万
展开全部
应该是句柄调用的问题,你具体想实现什么功能??
追问
就是点击按钮转换正弦和余弦图像,好像是在callback那里输入函数的格式一直弄不对
追答
不太习惯句柄编程。可以直接在回调函数中进行切换,按一下就画出正弦或者余弦函数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式