请问这个分段函数的写法的问题在哪儿
function creature(a,b,c)for x=a:0.1:b
if(a<x<c)
y=-x;
elseif(c<x<b)
y=x;
end
end
x=a:0.1:b
plot(x,y)
为什么我在命令窗口调用函数以后,最后图形的y值是b的值 个人水平专业有限, 建议楼主说清楚些! 我在.M文件编写了这个分段程序,abc是变量。然后再comman窗口输入creature(100,200,150)时,figure里面的y显示不为分段函数,而是定值200,这是为什么呢? 在plot前加上whos看看x,y的大小!注意y仅有1*1 谢谢,看见了。我再改下看看
我将开始的程序改成了
function creature(a,b,c)
x=a:0.1:b
if(a<x<c)
y=-x;
elseif(c<x<b)
y=x;
end
plot(x,y)
输入creature(100,200,150)时图形结果是x在100到200变化时y=-x,而y=x没有了。请问下这是为什么呢?
还有
function creature(a,b,c)
x=a:0.1:b
y=(-x).*(a<x&c>=x)+x.*(c<x&b>=x);
plot(x,y)
输入creature(100,200,150),图形在150的时候有个跳变过程,怎么样才能将那条跳变的直线去掉呢?
[ 本帖最后由 ChaChing 于 2010-7-14 00:26 编辑 ] 原帖由 zdd13717421 于 2009-9-12 15:27 发表 http://www.chinavib.com/forum/images/common/back.gif
...if(a<x<c)...
楼主提醒了我, matlab有这种写法吗? 个人没连在一起用过!
因未报错所以试了下, a<x<c全为1, 但c>x>a全为0, 汗! 目前也不知道为何?
至於跳变的直线不画, 可以分两次画! 下面请参考
function creature(a,b,c)
x1=a:0.1:c; y1=-x1; x2=c:0.1:b; y2=x2;
x=; y=;
plot(x1,y1,x2,y2) 谢谢,知道了 可以这样
function myfun(a,b,c)
x=a:0.1:b;
y=zeros(1,length(x));
for i=1:length(x)
if (a<x(i) && x(i)<c)
y(i)=-x(i);
elseif (c<x(i) && x(i)<b)
y(i)=x(i);
end
end
x=a:0.1:b;
plot(x,y)
页:
[1]