我正在尝试在间隔(0,3)上绘制一些支持的凹凸函数。我已经分段定义了函数,使其在区间外为零。这是功能:
function d = bump2(t)
region1 = (t > 0) & (t < 3);
d(region1) = exp(1./(t(region1).^2 - 3*t(region1)));
region2 = (t <= 0) & (t >= 3);
d(region2) = 0;
end
如果我设置x = -1:.01:4
并尝试运行,plot(x,bump2(x))
我会收到一条错误消息,告诉我我的向量长度不同。这确实是正确的,因为length(x) = 501
和length(bump2(x)) = 400
但是,当我设置 时x = .01:.01:2.99
,一切检查正常并且向量的长度相等。
另外,奇怪的是,我还有另一个类似的功能
function b = bump(t)
region1 = abs(t) < 1;
b(region1) = exp(-1./(1 - ((t(region1)).^2)));
region2 = abs(t) >= 1;
b(region2) = 0;
end
我从来没有遇到过这个问题。为什么这两个功能不同?为什么当我排除点 0 和 3 时第一个函数会起作用,即使我已经定义了函数以避免那里可能出现的奇点?