Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Matlab中创建非线性空间矢量?_Matlab - Fatal编程技术网

如何在Matlab中创建非线性空间矢量?

如何在Matlab中创建非线性空间矢量?,matlab,Matlab,我试图创建一个等高线图,焦点在1到1.05的特定有限范围内。同时,我需要非常高的分辨率接近1。我想我可以使用下面这样的东西,但是间距看起来仍然是线性的 out=exp(linspace(log(1),log(1.05),100)) plot(diff(out)) 当边界非常紧时,增强间距非线性的最佳方法是什么?再一次,我需要保持接近1的高密度,分辨率以非线性方式逐渐变小。我有一些想法,但我想有人可能会有一个快速的2线性或类似的东西。不是应用函数f(x)=ex,而是应用函数f(x)=eax来获得

我试图创建一个等高线图,焦点在1到1.05的特定有限范围内。同时,我需要非常高的分辨率接近1。我想我可以使用下面这样的东西,但是间距看起来仍然是线性的

out=exp(linspace(log(1),log(1.05),100))
plot(diff(out))

当边界非常紧时,增强间距非线性的最佳方法是什么?再一次,我需要保持接近1的高密度,分辨率以非线性方式逐渐变小。我有一些想法,但我想有人可能会有一个快速的2线性或类似的东西。

不是应用函数f(x)=ex,而是应用函数f(x)=eax来获得一个“更陡峭”的非线性

现在
plot(diff(out),diff(out),'o')

请注意,您可以在
logspace
中使用与上面完全相同的缩放方案,因此只需使用

temp = logspace(...)

然后剩下的都是相同的

您可以生成一个对数分布,例如,1到1000之间,然后将其缩放回[1,1.05]:

out = logspace(0, 3, 100);
out = ( (out-min(out(:)))*(1.05-1) ) / ( max(out(:))-min(out(:)) ) + 1;
结果:

plot(diff(out));

plot(diff(out));