2014-11-08 107 views
1

在matlab中有一个名为linspace的函数,它将给定范围内的间隔分开。例如:如何用手计算MATLAB linspace函数

>> x = linspace(-10,5, 10) 

x = 

    -10.0000 -8.3333 -6.6667 -5.0000 -3.3333 -1.6667   0 1.6667 3.3333 5.0000 

如何找到X(4)通过做手工计算?

+1

输入'open linspace'并查看其代码 – 2014-11-08 19:50:59

回答

4

这似乎是工作 -

x = linspace(-10,5, 10) 

start = -10; 
stop = 5; 
num_elements = 10; 
index = 4; 

out = start + (index-1)*(stop - start)./(num_elements-1) 

输出 -

x = 
    -10.0000 -8.3333 -6.6667 -5.0000 -3.3333 -1.6667 0 1.6667 ... 
out = 
    -5 

因此,(stop - start)./(num_elements-1)将是stepsize

所以,如果你想完整的阵列,这样做 -

complete_array = start : (stop - start)./(num_elements-1) :stop 

但是,如果你反对linspace结果比较这些结果要小心的浮点精度问题 - What is the advantage of linspace over the colon “:” operator?