2015-10-18 56 views
0

我試圖在MATLAB函數文件中寫入,其中包含兩個方程,它們將根據與輸入的時間相等的兩個方程進行切換。函數中的方程之間的切換

if vc(t) <= |vt*cos(2*pi*f*t)| 

     Execute Equation 1 

    if vc(t) > |vt*cos(2*pi*f*t)| 

     Execute Equation 2 

我希望函數能夠啓動與所述第一方程式(時間= 0),並且一旦時間達到一定值切換到第二方程。這可能嗎?

+0

什麼是'vc','vt','f'等等?請張貼您已有的代碼(即功能,參數等);還添加了一些演示輸入和輸出數據(你想輸入向量,矩陣或標量?) –

+0

你有機會看我的答案嗎? –

回答

0

如果兩個方程式之間的區別基本上是調用兩個不同的函數,那麼可以使用函數句柄來優雅地執行此操作。

如果你的第一個情況下,你需要

some_output=some_function1(var1,var2,var3) 

,並在第二種情況下,你需要

some_output=some_function2(var1,var2,var3) 

那麼你可以做

if vc(t) <= |vt*cos(2*pi*f*t)| 
    [email protected](var1,var2,var3) some_function1(var1,var2,var3); 
else 
    [email protected](var1,var2,var3) some_function2(var1,var2,var3); 
end 

some_output=right_hand_side(var1,var2,var3); %right_hand_side is a function handle to an anonymous function 

,如果你有這也將工作一個簡單的表達式而不是一個函數,只是沿着@(var1,var2,var3) 2*var1.*var2./var3;