[运算] 分段函数

楼主: abc0229 ((abc0229))   2015-05-14 12:20:12
我想做一个分段函数
指令如下
x=linspace(0,1,21);
if 0<= x <=1/2;
f=2*x;
else f=2-2*x
end
结果出来的值是 2 , 1.9 , 1.8 ,...., 0.1 , 0
意思是他只执行了else后面的函数
所以想请问各位大大我code问题出在哪?
作者: JamesChen (James)   2015-05-14 15:17:00
X 从 0 到 21, 你又只能让他在 x < 0.5 时执行前面那一行,当然不行。你可以用中文讲你要干嘛吗?
作者: celestialgod (天)   2015-05-14 15:19:00
因为x是向量,你不能放在if里面你要的应该是 f=2*x; f(x>0.5) = 2-f(x>0.5);循环虽然可以达到目标,还是建议用向量运算比较好无论是效率还是简洁程度、易读性等
楼主: abc0229 ((abc0229))   2015-05-14 15:50:00
好喔~那我试着不用循环写写看,感谢建议^^

Links booklink

Contact Us: admin [ a t ] ucptt.com