没有Matlab转换为十进制表示的精确分数算术?

时间:2015-11-15 23:37:58

标签: matlab

所以假设我想以精确的分数形式计算1/9+1/13。由于两个数字都是合理的,因此可以得到分数形式的精确结果。但是当我在Matlab中输入1/9+1/13时,结果始终是十进制近似值。

如何获得准确的分数形式?

1 个答案:

答案 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)

分别为22117返回nd