推 JamesChen: X 從 0 到 21, 你又只能讓他在 x < 0.5 時執行前面那 05/14 15:17
→ JamesChen: 一行,當然不行。 05/14 15:17
→ JamesChen: 你可以用中文講你要幹嘛嗎? 05/14 15:18
→ celestialgod: 因為x是向量,你不能放在if裡面 05/14 15:19
→ celestialgod: 你要的應該是 f=2*x; f(x>0.5) = 2-f(x>0.5); 05/14 15:20
感謝大大的建議,我要做一個分段函數f(x)=2*x as 0<= x <= 1/2,f(x)=2-2*x as
1/2<= x <=1
我修改了一下程式
x=linspace(0,1,21);
for i=1:21
if 0<=x(i) & x(i)<=1/2;
f(i)=2*x(i);
else f(i)=2-2*x(i)
end
end
之後有執行出想要的答案,感謝幫忙^^
※ 編輯: abc0229 (36.231.212.224), 05/14/2015 15:43:40
→ celestialgod: 迴圈雖然可以達到目標,還是建議用向量運算比較好 05/14 15:45
→ celestialgod: 無論是效率還是簡潔程度、易讀性等 05/14 15:46
→ abc0229: 好喔~那我試著不用迴圈寫寫看,感謝建議^^ 05/14 15:50