为什么Octave或Matlab不使用%(百分号)作为模运算符

时间:2014-10-23 09:05:01

标签: matlab octave

该语言的新手可能会合理地期望7%4返回3,即mod(7,4)的结果,就像许多其他语言一样。相反,它返回7 - "为什么会这样?"他/她可能会问...

2 个答案:

答案 0 :(得分:9)

为什么合理地希望7%4返回3%不是modulo operation的数学符号。如果您阅读维基百科的文章,您会发现尽可能多的语言使用mod作为%使用,因此Matlab在这里并不奇怪。它与您来自哪里的语言不同。

猜测 %来自C和Matlab最初的目标是竞争'与Fortran而不是C. Fortran使用MOD而不是%。我认为你期望%表示模数的唯一原因是因为C的影响而且the question of why modulo gets a special operator character in many languages更相关。例如,为什么模拟地板?还是超过绝对?

Matlab使用%进行评论,但这并不能说是它没有将其用于模数的原因。我认为说它没有%用于模数的原因更公平,因为它确实没有任何理由。

答案 1 :(得分:6)

%用于Matlab中的comments。 Octave / Matlab中用于在除法后找到余数的正确语法(即模运算)是使用mod函数。

e.g。

>> mod(8,3)

ans = 

     2