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

lao*_*mao 2 matlab

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

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

hor*_*ler 5

Matlab主要是一个数字环境,因此默认使用浮点数.通常,您需要使用符号数学工具箱来实现您所描述的内容.就你的例子而言:

sym('1/9')+sym('1/13')
Run Code Online (Sandbox Code Playgroud)

回报22/117.

或者,您可以尝试rats使用浮点输入的(有理分数近似)函数:

rats(1/9+1/13)
Run Code Online (Sandbox Code Playgroud)

返回字符串'22/117'.还有rat将分子和分母作为单独的浮点输出返回.

[n,d] = rat(1/9+1/13)
Run Code Online (Sandbox Code Playgroud)

分别返回22117for nd.