在MATLAB函数中进入无限循环

时间:2014-03-24 00:52:02

标签: matlab infinite

我正在尝试在matlab上绘制一个函数,其定义如下: Y = -100t; 0> = T> = 0.15 Y = -15; T> 0.15

我正在使用以下代码:

function [ Y ] = Gain( t )

for t=[0:0.01:0.15]

        Y=-100*t
end

for t=0.15:0.01:2
        Y=-15
end
plot (Gain)

但我要进入一个无限循环!

请有人为我解决这个问题。

谢谢。

2 个答案:

答案 0 :(得分:1)

遗憾的是,函数在MATLAB中的工作方式不同。 (或者至少我不认为他们这样做)。尝试这样的事情:

function Y = Gain(t)
    Y = -100*t;
    Y(t >= 0.15) = -15;
end

x = 0:0.01:2;
plot(x, Gain(x))

MATLAB仍然使用C-esque函数,所以你不得不使用C风格的语法来定义它,而不是更像数学类的语法。我将输入值乘以-100,然后对于匹配t大于15的那些,我用-15替换它们。 MATLAB很奇怪。

编辑:对不起,以前的代码示例也使用了错误的语法.. MATLAB很奇怪。

答案 1 :(得分:1)

我不确定你要做什么,但当你从外面打电话给Gain功能"可以这么说,......

  1. 您输入Gain功能
  2. 第一个for循环执行,每次迭代都会覆盖t的传入值。 (因此,您传入的t的值将被完全忽略,即您编写此代码的方式。)
  3. 第二个for循环执行,
  4. 你调用plot(Gain),强制再次调用Gain,这次没有参数。回到1.
  5. 永远重复。