循环如下:
while 1
y1=[y1(end),y1(1:end-1)];
set(h1,'YData',y1)
y2=[y2(2:end),y2(1)];
set(h2,'YData',y2)
set(h,'YData',y1+y2)
drawnow
pause(0.05)
end
但是y1,y2是从edit中得到的string,因此会报错。
以及你输入的是函数数据还是函数??追问
输入的是函数,如sin(x)之类的,要画出图来的。
如果是在m文件中直接写y1=sin(x),则后面循环不会有错,而在gui的 edit中输入sin(x),用y1=get(handles.edit1,'String'); 得到后,就会出错了。
x=1:100;
a = get(handles.edit1,'string'); % 你输入的是 y = sin(x); 也即a应该为'y = sin(x);'
eval(a);
for i=1:100
plot(x(1:i),y(1:i));
axis([0,100,-1,1]);
pause(0.5);
end
不是输入y=sin(x),而是在edit 中 只输入sin(x),画出sin(x)的图像后整体向左或向右位移,而不是一点一点画出来。
追答x=1:100;
a = get(handles.edit1,'string'); % 你输入的是 sin(x); 也即a应该为'sin(x);'
b = ['y = ',a];
eval(b);
for i=1:100
plot(x+5*i,y);
pause(0.5);
end
你试试这个喽
现在基本上可以了,感谢“转基因牛”的耐心解答。