2014-02-12 121 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

謝謝。但是,如果沒有括號,輸出意味着什麼? – Prakash

回答

4

這是很簡單的:

1:6/3意味着1:2這是一個矢量範圍從12

1/3只是一個簡單的直線劃分。

1:24/3意味着1:8這是一個從18範圍內的向量。

1:24/3:2意味着1:8:2其範圍從128每個元素之間的差的向量。作爲下一個可能的迭代,這隻會讓你用19會大於2

1:6/2 * 2暗示1:3*2這意味着1:6。這是一個從16的矢量。

+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規則,它說的是,

乙支架第一

Ø訂單(即權力和平方根等。)

DM除法和乘法(左到右)

加法和減法(左到右)

當修改,以使用在數學它加入根據幾個運營商其中/的優先級高於:

因此你會得到錯誤的結果。你可以通過實現更多的括號來檢查這個東西。