在MATLAB中绘制分段定义函数时遇到的问题
我试图在MatlabR2016a中绘制一个简单的分段定义函数。当t为负值时,该代码应绘制在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);
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错误消息非常有用,请阅读并思考它们所说的内容!优秀的解决方案和评论!