2013-11-08 2 views
0

Я работаю с численными методами и решил начать обучение в среде Matlab, мой вопрос в том, как добавить к сгенерированному интервалу моего вектора последний номер интервала, например:Matlab Vector Interval

vector = [-2.4:2.4] 

это приведет к этим номерам внутри вектора:

-2.4000 -1.4000 -0.4000 0.6000 1.6000 

так, что я хочу знать, каковы мои варианты, так что я могу это сделать:

-2.4000 -1.4000 -0.4000 0.6000 1.6000 2.4000 

Мне нужен интервал между цифрами, чтобы быть 1, и я не знаю точный размер вектора, поэтому я не могу использовать функцию linspace. Прежде чем приходить сюда, чтобы спросить, я уже искал об этом, но на самом деле не нашел того, что могло мне помочь.

+1

Расстояние между 1.6 и 2.4 не равен 1. Так как весь отрезок имеет ширину 4.8, вы не можете разбить его на элементы, которые отличаются на 1. – David

+0

Если вы спрашиваете, как перейти от -2.4 до 2.4 с шагом 1 и как-то включить 2.4, в то время как все еще сохраняя приращения 1 ... ясно, что это невозможно. – Dan

ответ

0

Если разница между первым элементом и последним элементом не является множественным числом из 1, вы не можете не иметь, то интервал между числами равен 1 для всех. Однако, если ваша цель состоит в том, чтобы гарантировать, что последний элемент является определенным числом и готовы пойти на компромисс (кажется, вы делаете с 1.6 и 2.4), как насчет построения v?

v1 = -2.4; v_last = 2.4; 
v = v1 : v_last; 
if v(end) ~= v_last 
    v = [v, v_last]; 
end 
+0

Спасибо, что сработало, я действительно думал, что это может быть способ гарантировать первое и последнее количество интервалов, которые должны быть сгенерированы внутри вектора, в любом случае, еще раз спасибо. –

+0

Это похоже на глупую попытку, но, поскольку OP хочет этого, вы можете сделать это намного опрятно: '[-r: p: (rp/3), r]' где в этом случае 'r' '2.4' и' p' - '1'. – Dan

+0

@ Дэн, нет, это не сработает всегда. Мы не знаем, что OP начинается с '-r', а будет ли' r-p/100' достаточно? Но да, немного глупо. –