单个术语中多个连续除法运算的计算顺序

Order of calculation for multiple successive division operations in a single term

为什么这个函数句柄在Matlab中g = @(x)(4*x^5-A)/5/x^4;对应 g(x) = (4x^5-A)/5x^4 而不是 (4x^5-A)/(5/x^4)?

您观察到的是除法运算符的left associativity。也许我们应该先简化示例,没有匿名函数,只有运算符:

>> 5/5/5
ans =
    0.2000
>> (5/5)/5
ans =
    0.2000
>> 5/(5/5)
ans =
     5
>> 

背后并没有真正合乎逻辑的原因,但我所知道的所有编程语言都有像 / 这样的数学运算符左结合。 * 也是左结合的,但通常无关紧要。说到操作顺序,还要考虑precedence