我正在尝试创建一个轮廓图,其焦点围绕1到1.05的特定有限范围。与此同时,我需要非常高的分辨率接近1.我认为我可以使用类似下面的东西,但间距看起来仍然是线性的
out=exp(linspace(log(1),log(1.05),100))
plot(diff(out))
当边界如此紧密时,增强间距非线性的最佳方法是什么?同样,我需要保持高密度接近1,分辨率以非线性方式逐渐减小。我有一些想法,但我认为有人可能有一个快速2班轮或类似的东西。
答案 0 :(得分:4)
而不是应用函数 f(x)= e x ,以获得更加苛刻的'非线性,而是应用 f(x)= e ax
n = 20;
a = 100;
lower = 1;
upper = 1.05;
temp = exp(linspace(log(1)*a,log(1.05)*a,n))
% re-scale to be between 0 and 1
temp_01 = temp/max(temp) - min(temp)/max(temp)
% re-scale to be between your limits (i.e. 1 and 1.05)
out = temp_01*(upper-lower) + lower
现在plot(diff(out),diff(out),'o')
生成
请注意,您可以使用与logspace
完全相同的缩放方案,因此请使用
temp = logspace(...)
然后其余的是相同的
答案 1 :(得分:1)