2014-11-08 2 views
1

В заданном диапазоне есть функция linspace в matlab и разделяет интервал. Например:Как вычислить функцию Linspace MATLAB вручную

>> 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' и посмотреть его код –

ответ

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?.

Смежные вопросы