在函数中的方程之间切换

时间:2015-10-18 09:13:04

标签: matlab function

我试图在包含两个方程式的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)开始,一旦时间达到某个值,就切换到第二个等式。这可能吗?

1 个答案:

答案 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)|
  right_hand_side=@(var1,var2,var3) some_function1(var1,var2,var3);
else
  right_hand_side=@(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;

的内容。