在MATLAB中绘制分段定义函数时遇到的问题

在MATLAB中绘制分段定义函数时遇到的问题,matlab,for-loop,piecewise,Matlab,For Loop,Piecewise,我试图在MatlabR2016a中绘制一个简单的分段定义函数。当t为负值时,该代码应绘制v=0,当t为正值(或零)时,代码应绘制v=10*exp(-5000*t)。代码如下: t = -0.0014:1e-5:0.0014; v = zeros(1, length(t)); for i = 1:length(t) if t(i) < 0 v(i) = 0; elseif t(i) >= 0 v(i) = 10*exp(-5000*t);

我试图在MatlabR2016a中绘制一个简单的分段定义函数。当t为负值时,该代码应绘制
v=0
,当t为正值(或零)时,代码应绘制
v=10*exp(-5000*t)
。代码如下:

t = -0.0014:1e-5:0.0014;
v = zeros(1, length(t));
for i = 1:length(t)
    if t(i) < 0
        v(i) = 0;
    elseif t(i) >= 0
        v(i) = 10*exp(-5000*t);
    end
end
plot(t, v)

我怀疑这很简单,但我就是不明白

问题的注释回答了这个问题,但如果将其矢量化,则可以使代码更简单:

v = 10*exp(-5000*t).*(t >= 0);

问题的注释回答了这个问题,但如果将其矢量化,则可以使代码更简单:

v = 10*exp(-5000*t).*(t >= 0);

v(i)=10*exp(-5000*t(i))
由于Matlab错误消息非常有用(通常是这样),您知道问题是因为“A和B中的元素数量必须相同”,这意味着
v(i)
10*exp(-5000*t)
中的元素数量必须不同。为了进一步调试,您可以在错误发生前的两行上执行
size(v(i))
size(10*exp(-5000*t))
。这会显示出问题所在,然后您只需要解决如何解决它。Matlab错误消息非常有用,请阅读并思考它们所说的内容!优秀的解决方案和评论<代码>v(i)=10*exp(-5000*t(i))由于Matlab错误消息非常有用(通常是这样),您知道问题是因为“A和B中的元素数量必须相同”,这意味着
v(i)
10*exp(-5000*t)
中的元素数量必须不同。为了进一步调试,您可以在错误发生前的两行上执行
size(v(i))
size(10*exp(-5000*t))
。这会显示出问题所在,然后您只需要解决如何解决它。Matlab错误消息非常有用,请阅读并思考它们所说的内容!优秀的解决方案和评论!