所以假设我想以精确的分数形式计算1/9+1/13
。由于两个数字都是合理的,因此可以得到分数形式的精确结果。但是当我在Matlab中输入1/9+1/13
时,结果始终是十进制近似值。
如何获得准确的分数形式?
答案 0 :(得分:5)
Matlab主要是一个数字环境,因此使用floating-point numbers by default。通常,您需要使用Symbolic Math toolbox来表达您所描述的内容。就你的例子而言:
sym('1/9')+sym('1/13')
返回22/117
。
或者,您可以尝试使用浮点输入的rats
(有理分数近似)函数:
rats(1/9+1/13)
返回字符串'22/117'
。还有rat
将分子和分母作为单独的浮点输出返回。
[n,d] = rat(1/9+1/13)
分别为22
和117
返回n
和d
。