【发布时间】:2016-06-17 12:01:49
【问题描述】:
我正在尝试在 MATLAB R2016a 中绘制一个简单的分段定义函数。当 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)
这个 m 文件在我看来是正确的,但我不断收到错误
In an assignment A(:) = B, the number of elements in A and B must be the same.
Error in PiecewiseFunction (line 10)
v(i) = 10*exp(-5000*t);
我怀疑这很简单,但我就是没看到!
【问题讨论】:
-
v(i) = 10*exp(-5000*t(i)); -
鉴于 Matlab 错误消息非常有用(通常如此),您知道问题是因为“A 和 B 中的元素数量必须相同”,所以这意味着数量
v(i)和10*exp(-5000*t)中的元素数量必须不同。为了进一步调试,您可以在错误前的 2 行上完成size(v(i))和size(10*exp(-5000*t))。这将显示问题所在,然后您只需要弄清楚如何解决它。 Matlab 错误信息非常有用,阅读它们并思考它们在说什么! -
优秀的解决方案和 cmets!