在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)?
答案 0 :(得分: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?
。