2014-02-12 2 views
1

Я немного запутался с ниже выхода:Деление по диапазону значений

>> 1:6/3 

    ans = 

     1  2 

Но

>> 1/3 

ans = 

    0.3333 

Также

>> 1:24/3 

ans = 

    1  2  3  4  5  6  7  8 

Похоже, MATLAB выводит только значения число делится в диапазоне 1-24 на 3? Но почему не для тех, которые не полностью делятся на 3?

Кроме того, я не в состоянии понять, ниже вывод:

>> 1:24/3:2 

    ans = 

     1 

Аналогично

>> 1:6/2 * 2 

ans = 

    1  2  3  4  5  6 
+4

Попробуйте добавить скобки ;-) –

+0

Thanks. Но что означает вывод в случае отсутствия скобок? – Prakash

ответ

4

Это достаточно просто:

1:6/3 подразумевает 1:2, который является вектор от 1 до 2.

1/3 - просто прямое подразделение.

1:24/3 Вмещает 1:8 который представляет собой вектор в диапазоне от 1 до 8.

1:24/3:2 означает 1:8:2, который представляет собой вектор в пределах от 1 до 2 с разницей между 8 каждого элемента. Это просто оставит вас с 1 в качестве следующей возможной итерации, 9 будет больше 2.

1:6/2 * 2 подразумевает 1:3*2, что подразумевает 1:6. Это вектор от 1 до 6.

+0

Спасибо за ясное разъяснение – Prakash

+0

@Prakash: Мое удовольствие. :) –

+0

@ RoneyMichael oye kunda: D –

4

Это operator precedence проблема. / имеет более высокий уровень приоритета, чем :.

Поэтому 1:6/3 эквивалентно 1:(6/3), в то время как вы хотите, чтобы вычислить (1:6)/3

Попробуйте с скобкой наблюдать различные результаты:

>> (1:6)/3 
>> (1:24)/3 
>> (1:24)/(3:2) 
>> ((1:6)/2)*2 
+0

Но что означает вывод в случае отсутствия скобок? Что же такое разделение распространяется и без круглых скобок? – Prakash

+1

Я отредактировал мой ответ, чтобы добавить дополнительную информацию –

0

Вы могли бы знать правила BODMAS, который говорит, что

B Кронштейны Первые

O Заказы (то есть полномочия и квадратные корни и т.д.)

ДМ деление и умножение (слева направо)

как сложение и вычитание (слева направо)

При модифицирован для использования в математике, она добавила еще несколько операторов в соответствии который / имеет более высокий приоритет над :

Поэтому вы получаете ошибочные результаты. Вы можете проверить это, выполнив больше скобок.

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