我正在尝试在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)
但我要进入一个无限循环!
请有人为我解决这个问题。
谢谢。
答案 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
功能"可以这么说,......
Gain
功能for
循环执行,每次迭代都会覆盖t
的传入值。 (因此,您传入的t
的值将被完全忽略,即您编写此代码的方式。)plot(Gain)
,强制再次调用Gain
,这次没有参数。回到1. 永远重复。