[運算] 分段函數

作者: 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